<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0">
  <channel>
    <title>bAdmArk - .NET</title>
    <link>http://www.badmark.com/</link>
    <description>Husband, father, technologist, musician</description>
    <language>en-us</language>
    <copyright>bad mark</copyright>
    <lastBuildDate>Sat, 18 Aug 2007 15:34:49 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>badmark@gmail.com</managingEditor>
    <webMaster>badmark@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.badmark.com/Trackback.aspx?guid=c60ef744-b008-4c03-9b9d-81d852f42360</trackback:ping>
      <pingback:server>http://www.badmark.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.badmark.com/PermaLink,guid,c60ef744-b008-4c03-9b9d-81d852f42360.aspx</pingback:target>
      <dc:creator>bAdmArk</dc:creator>
      <wfw:comment>http://www.badmark.com/CommentView,guid,c60ef744-b008-4c03-9b9d-81d852f42360.aspx</wfw:comment>
      <wfw:commentRss>http://www.badmark.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c60ef744-b008-4c03-9b9d-81d852f42360</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As PlateWire's popularity continues to grow, I have noticed more web sites of a similar
nature launching on a regular basis. After some discussion with other webmasters (including <a href="http://aboveaveragedriver.com">AboveAverageDriver.com</a>'s
Chris) I came to the conclusion that this niche market would benefit from having one
single clearing house to exchange messaging of license plates.
</p>
        <p>
For instance, say Joe in California, witnesses Suzy's teenage daughter driving recklessly
down the highway. Perhaps Joe does contact the authorities but they deem it low priority.
So Joe goes home and send a "wire" to the plate, using AboveAverageDriver. Suzy on
the other hand is registered on PlateWire to receive a notification if any of her
plates are messaged. WIthout PlateXchange, Judy would have not received the message
regarding her daughters reckless driving (unless she would have checked on AAD's website). 
</p>
        <p>
PlateXchange offers an Open Source system for web sites to communicate license plate
packages amongst themselves.
</p>
        <p>
So if you run a license plate based web site, or have a neat idea that you think would
take off, but have avoided launching it, because others have something similar, now
is your chance to participate in a growing network of niche web sites!
</p>
        <p>
          <a href="http://www.PlateXchange.com/">http://www.PlateXchange.com/</a>
        </p>
        <img width="0" height="0" src="http://www.badmark.com/aggbug.ashx?id=c60ef744-b008-4c03-9b9d-81d852f42360" />
      </body>
      <title>PlateXchange: Open Source License Plate Messaging Exchange Network</title>
      <guid isPermaLink="false">http://www.badmark.com/PermaLink,guid,c60ef744-b008-4c03-9b9d-81d852f42360.aspx</guid>
      <link>http://www.bAdmArk.com/PlateXchange+Open+Source+License+Plate+Messaging+Exchange+Network.aspx</link>
      <pubDate>Sat, 18 Aug 2007 15:34:49 GMT</pubDate>
      <description>&lt;p&gt;
As PlateWire's popularity continues to grow, I have noticed more web sites of a similar
nature launching on a regular basis. After some discussion with other webmasters (including &lt;a href="http://aboveaveragedriver.com"&gt;AboveAverageDriver.com&lt;/a&gt;'s
Chris) I came to the conclusion that this niche market would benefit from having one
single clearing house to exchange messaging of license plates.
&lt;/p&gt;
&lt;p&gt;
For instance, say Joe in California, witnesses Suzy's teenage daughter driving recklessly
down the highway. Perhaps Joe does contact the authorities but they deem it low priority.
So Joe goes home and send a "wire" to the plate, using AboveAverageDriver. Suzy on
the other hand is registered on PlateWire to receive a notification if any of her
plates are messaged. WIthout PlateXchange, Judy would have not received the message
regarding her daughters reckless driving (unless she would have checked on AAD's website). 
&lt;/p&gt;
&lt;p&gt;
PlateXchange offers an Open Source system for web sites to communicate license plate
packages amongst themselves.
&lt;/p&gt;
&lt;p&gt;
So if you run a license plate based web site, or have a neat idea that you think would
take off, but have avoided launching it, because others have something similar, now
is your chance to participate in a growing network of niche web sites!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.PlateXchange.com/"&gt;http://www.PlateXchange.com/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.badmark.com/aggbug.ashx?id=c60ef744-b008-4c03-9b9d-81d852f42360" /&gt;</description>
      <comments>http://www.badmark.com/CommentView,guid,c60ef744-b008-4c03-9b9d-81d852f42360.aspx</comments>
      <category>.NET;design;Exchange;Platewire;Software;Tech Tips;technology;Web 2.0</category>
    </item>
    <item>
      <trackback:ping>http://www.badmark.com/Trackback.aspx?guid=f4cc0abc-b933-410f-9b96-6159ff5d29f9</trackback:ping>
      <pingback:server>http://www.badmark.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.badmark.com/PermaLink,guid,f4cc0abc-b933-410f-9b96-6159ff5d29f9.aspx</pingback:target>
      <dc:creator>bAdmArk</dc:creator>
      <wfw:comment>http://www.badmark.com/CommentView,guid,f4cc0abc-b933-410f-9b96-6159ff5d29f9.aspx</wfw:comment>
      <wfw:commentRss>http://www.badmark.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f4cc0abc-b933-410f-9b96-6159ff5d29f9</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font face="Arial">It's been a while since
I needed to work with zip files, so when I found myself writing a small routine that
periodically downloads and processes a Zip file, I need a quick and cheap (note: by
cheap I mean free) method to decompress said file. Of course there are countless number
of commercial components available, but most come with a hefty price tag. All I need
is to extract a file. Wait, doesn't Windows include the ability to work with compressed
folders? 
<br /><br />
Sure enough, Shell32 (Found in C:\Windows\System32\Shell32.dll) offers methods to
extract and create Zips! So with a reference to Microsoft Shell and Automation Controls
(Which will create an Interop assembly, Interop.Shell32.Dll), and some handy Googling,
I was able to create a small class with 2 methods:<br /></font>
        <ul>
          <li>
            <font face="Arial">UnzipFileTo(<i>zipPath</i>, <i>pathtoExtract</i>): Extracts files
in <i>zipPath </i>to <i>pathtoExtract</i></font>
          </li>
          <li>
            <p>
              <font face="Arial">
                <font color="#0000ff">
                  <font color="#000000">ZipFolder(<i>srcfolderString</i>, <i>dstfolderString</i>):
Compresses all files in <i>srcFolderString </i>to <i>dstfolderString</i></font>
                </font>
              </font>
            </p>
          </li>
        </ul>
        <font face="Arial">
          <b>Note: </b>This method does display a Progress Dialog (Even though
the proper options have been passed to the CopyHere method), so make sure to handle
existing files and paths prior to using.<br /><br />
Below you will find this class in both Visual Basic and C Sharp compatible with Framework
2.0 and above.<br /><br />
Comments and suggestions always welcome!<br /><br />
Visual Basic:<br /><br /></font>
        <address>
          <font color="#0000ff" face="Arial">Imports System.IO</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">Imports Shell32</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">Public Class ZipControl</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    Public ErrorMsg As
String = ""</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    Public Function UnzipFileTo(ByVal
zipPath As String, ByVal pathtoExtract As String) As Boolean</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
Try</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim sc As New Shell32.ShellClass()</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim SrcFlder As Shell32.Folder = sc.NameSpace(zipPath)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim DestFlder As Shell32.Folder = sc.NameSpace(pathtoExtract)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim items As Shell32.FolderItems = SrcFlder.Items()</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
DestFlder.CopyHere(items, 4 + 20 + 10 + 200)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
Catch ex As Exception</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Me.ErrorMsg = ex.Message</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Return False</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
End Try</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
Return True</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    End Function</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    Public Function ZipFolder(ByVal
srcfolderString As String, ByVal dstfolderString As String) As Boolean</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
Try</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim fileContents() As Byte = {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0}</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
File.WriteAllBytes(dstfolderString, fileContents)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim oShell As New Shell32.ShellClass</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim oFolderSrc As Shell32.Folder</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim oFolderDst As Shell32.Folder</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Dim oFolderItems As Shell32.FolderItems</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderSrc = oShell.NameSpace(srcfolderString)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderDst = oShell.NameSpace(dstfolderString)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderItems = oFolderSrc.Items()</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderDst.CopyHere(oFolderItems, 4 + 20 + 10 + 200)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
Catch ex As Exception</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Me.ErrorMsg = ex.Message</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Return False</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
End Try</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
Return True</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    End Function</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">End Class</font>
        </address>
        <font face="Arial">
          <br />
C#:<br /><br /></font>
        <address>
          <font color="#0000ff" face="Arial">using System;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">using Shell32;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">using System.IO;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">public class ZipControl</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">{</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    public string ErrorMsg
= "";</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    public bool UnzipFileTo(string
zipPath, string pathtoExtract)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    {</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
try</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
{</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.ShellClass sc = new Shell32.ShellClass();</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.Folder SrcFlder = sc.NameSpace(zipPath);</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.Folder DestFlder = sc.NameSpace(pathtoExtract);</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.FolderItems items = SrcFlder.Items();</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
DestFlder.CopyHere(items, 4 + 20 + 10 + 200);</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
}</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
catch (Exception ex)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
{</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
this.ErrorMsg = ex.Message;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
return false;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
}</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
return true;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    }</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    public bool ZipFolder(string
srcfolderString, string dstfolderString)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    {</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
try</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
{</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
byte[] fileContents = {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, </font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, </font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
    0, 0};</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
File.WriteAllBytes(dstfolderString, fileContents);</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.ShellClass oShell = new Shell32.ShellClass();</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.Folder oFolderSrc;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.Folder oFolderDst;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
Shell32.FolderItems oFolderItems;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderSrc = oShell.NameSpace(srcfolderString);</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderDst = oShell.NameSpace(dstfolderString);</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderItems = oFolderSrc.Items();</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
oFolderDst.CopyHere(oFolderItems, 4 + 20 + 10 + 200);</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
}</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
catch (Exception ex)</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
{</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
this.ErrorMsg = ex.Message;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">           
return false;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
}</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">       
return true;</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">    }</font>
        </address>
        <address>
          <font color="#0000ff" face="Arial">}</font>
        </address>
        <font face="Arial">
          <br />
        </font>
        <img width="0" height="0" src="http://www.badmark.com/aggbug.ashx?id=f4cc0abc-b933-410f-9b96-6159ff5d29f9" />
      </body>
      <title>Compress and decompress a Zip file in .NET in under 50 lines</title>
      <guid isPermaLink="false">http://www.badmark.com/PermaLink,guid,f4cc0abc-b933-410f-9b96-6159ff5d29f9.aspx</guid>
      <link>http://www.bAdmArk.com/Compress+And+Decompress+A+Zip+File+In+NET+In+Under+50+Lines.aspx</link>
      <pubDate>Tue, 17 Jul 2007 05:30:42 GMT</pubDate>
      <description>&lt;font face="Arial"&gt;It's been a while since I needed to work with zip files, so when
I found myself writing a small routine that periodically downloads and processes a
Zip file, I need a quick and cheap (note: by cheap I mean free) method to decompress
said file. Of course there are countless number of commercial components available,
but most come with a hefty price tag. All I need is to extract a file. Wait, doesn't
Windows include the ability to work with compressed folders? 
&lt;br&gt;
&lt;br&gt;
Sure enough, Shell32 (Found in C:\Windows\System32\Shell32.dll) offers methods to
extract and create Zips! So with a reference to Microsoft Shell and Automation Controls
(Which will create an Interop assembly, Interop.Shell32.Dll), and some handy Googling,
I was able to create a small class with 2 methods:&lt;br&gt;
&lt;/font&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;font face="Arial"&gt;UnzipFileTo(&lt;i&gt;zipPath&lt;/i&gt;, &lt;i&gt;pathtoExtract&lt;/i&gt;): Extracts files
in &lt;i&gt;zipPath &lt;/i&gt;to &lt;i&gt;pathtoExtract&lt;/i&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;font face="Arial"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;ZipFolder(&lt;i&gt;srcfolderString&lt;/i&gt;, &lt;i&gt;dstfolderString&lt;/i&gt;):
Compresses all files in &lt;i&gt;srcFolderString &lt;/i&gt;to &lt;i&gt;dstfolderString&lt;/i&gt;&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;font face="Arial"&gt;&lt;b&gt;Note: &lt;/b&gt;This method does display a Progress Dialog (Even though
the proper options have been passed to the CopyHere method), so make sure to handle
existing files and paths prior to using.&lt;br&gt;
&lt;br&gt;
Below you will find this class in both Visual Basic and C Sharp compatible with Framework
2.0 and above.&lt;br&gt;
&lt;br&gt;
Comments and suggestions always welcome!&lt;br&gt;
&lt;br&gt;
Visual Basic:&lt;br&gt;
&lt;br&gt;
&lt;/font&gt; 
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;Imports System.IO&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;Imports Shell32&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;Public Class ZipControl&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public ErrorMsg As
String = ""&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function UnzipFileTo(ByVal
zipPath As String, ByVal pathtoExtract As String) As Boolean&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Try&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim sc As New Shell32.ShellClass()&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim SrcFlder As Shell32.Folder = sc.NameSpace(zipPath)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim DestFlder As Shell32.Folder = sc.NameSpace(pathtoExtract)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim items As Shell32.FolderItems = SrcFlder.Items()&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
DestFlder.CopyHere(items, 4 + 20 + 10 + 200)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Catch ex As Exception&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Me.ErrorMsg = ex.Message&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Return False&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
End Try&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Return True&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function ZipFolder(ByVal
srcfolderString As String, ByVal dstfolderString As String) As Boolean&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Try&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim fileContents() As Byte = {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0}&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
File.WriteAllBytes(dstfolderString, fileContents)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim oShell As New Shell32.ShellClass&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim oFolderSrc As Shell32.Folder&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim oFolderDst As Shell32.Folder&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim oFolderItems As Shell32.FolderItems&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderSrc = oShell.NameSpace(srcfolderString)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderDst = oShell.NameSpace(dstfolderString)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderItems = oFolderSrc.Items()&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderDst.CopyHere(oFolderItems, 4 + 20 + 10 + 200)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Catch ex As Exception&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Me.ErrorMsg = ex.Message&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Return False&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
End Try&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Return True&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;End Class&lt;/font&gt;
&lt;/address&gt;
&lt;font face="Arial"&gt;
&lt;br&gt;
C#:&lt;br&gt;
&lt;br&gt;
&lt;/font&gt; 
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;using System;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;using Shell32;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;using System.IO;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;public class ZipControl&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;{&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string ErrorMsg
= "";&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public bool UnzipFileTo(string
zipPath, string pathtoExtract)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
try&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.ShellClass sc = new Shell32.ShellClass();&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.Folder SrcFlder = sc.NameSpace(zipPath);&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.Folder DestFlder = sc.NameSpace(pathtoExtract);&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.FolderItems items = SrcFlder.Items();&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
DestFlder.CopyHere(items, 4 + 20 + 10 + 200);&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
catch (Exception ex)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
this.ErrorMsg = ex.Message;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return false;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return true;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public bool ZipFolder(string
srcfolderString, string dstfolderString)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
try&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
byte[] fileContents = {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, &lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0};&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
File.WriteAllBytes(dstfolderString, fileContents);&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.ShellClass oShell = new Shell32.ShellClass();&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.Folder oFolderSrc;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.Folder oFolderDst;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shell32.FolderItems oFolderItems;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderSrc = oShell.NameSpace(srcfolderString);&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderDst = oShell.NameSpace(dstfolderString);&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderItems = oFolderSrc.Items();&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
oFolderDst.CopyHere(oFolderItems, 4 + 20 + 10 + 200);&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
catch (Exception ex)&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
this.ErrorMsg = ex.Message;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return false;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return true;&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;
&lt;/address&gt;
&lt;address&gt;&lt;font color="#0000ff" face="Arial"&gt;}&lt;/font&gt;
&lt;/address&gt;
&lt;font face="Arial"&gt;
&lt;br&gt;
&lt;/font&gt;&lt;img width="0" height="0" src="http://www.badmark.com/aggbug.ashx?id=f4cc0abc-b933-410f-9b96-6159ff5d29f9" /&gt;</description>
      <comments>http://www.badmark.com/CommentView,guid,f4cc0abc-b933-410f-9b96-6159ff5d29f9.aspx</comments>
      <category>.NET;Microsoft;Software;Tech Tips;technology</category>
    </item>
  </channel>
</rss>