By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,262 Members | 1,128 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,262 IT Pros & Developers. It's quick & easy.

Decompressing the file or directory using VB.NET class

P: 1
Hi,

i want to compress the file or directory i am able to do that can anybody help me to decompress the file when i double click on the zipped file i am getting the error message as compressed(zipped) folder is invalid or corrupted. I am using VB.NET .Please help me out in this regard...Thank you in advance.

Here is the code for that.

Expand|Select|Wrap|Line Numbers
  1.  
  2. Public Class clsZip
  3.  
  4. Public Sub CreateZipFile(ByVal sPath As String)
  5. Dim fos As java.io.FileOutputStream
  6. Dim zos As java.util.zip.ZipOutputStream
  7. Dim di As System.IO.DirectoryInfo
  8.  
  9. 'check , is it a file existing in this path, if true then zip a file
  10. If System.IO.File.Exists(sPath) Then
  11. Dim fInfo As New FileInfo(sPath)
  12.  
  13. 'create a zip file with same name in the same path
  14. fos = New java.io.FileOutputStream(sPath.Replace(fInfo.Exten sion, ".zip"))
  15. zos = New java.util.zip.ZipOutputStream(fos)
  16.  
  17. 'procedure to zip one File
  18. ZipOneFile(fos, zos, sPath)
  19.  
  20. 'check , is it a directory existing in this path,if true then zip a directory
  21. ElseIf System.IO.Directory.Exists(sPath) Then
  22.  
  23. 'create a zip file with same name in the same path
  24. fos = New java.io.FileOutputStream(sPath & ".zip")
  25. zos = New java.util.zip.ZipOutputStream(fos)
  26. di = New System.IO.DirectoryInfo(sPath)
  27.  
  28. 'procedure to zip a directory
  29. ZipDirectory(fos, zos, di, sPath)
  30. End If
  31.  
  32.  
  33. zos.close()
  34. fos.close()
  35. zos.flush()
  36. fos.flush()
  37. End Sub
  38.  
  39. Private Sub ZipDirectory(ByVal fos As java.io.FileOutputStream, ByVal zos As java.util.zip.ZipOutputStream, ByVal di As System.IO.DirectoryInfo, ByVal SRootDir As String)
  40. Dim fis As java.io.FileInputStream
  41. Dim ze As java.util.zip.ZipEntry
  42.  
  43. 'to get file info from the directory
  44. Dim fInfos As System.IO.FileInfo() = di.GetFiles
  45. Dim fInfo As System.IO.FileInfo
  46.  
  47. For Each fInfo In fInfos
  48. 'give the zip entry or the folder arrangement for the file
  49. ze = New java.util.zip.ZipEntry(fInfo.FullName.Substring(SR ootDir.LastIndexOf("\")))
  50.  
  51. 'The DEFLATED method is the one of the methods to zip a file
  52. ze.setMethod(ze.DEFLATED)
  53. zos.putNextEntry(ze)
  54.  
  55. 'Input stream for the file to zip
  56. fis = New java.io.FileInputStream(fInfo.FullName)
  57.  
  58. 'Copy stream is a simple method to read a file input stream (file to zip) and write it to a file output stream(new zip file)
  59. CopyStream(fis, zos)
  60.  
  61. zos.closeEntry()
  62. fis.close()
  63. Next
  64.  
  65. 'If the directory contains the sub directory the call the same procedure
  66. Dim dinfos As System.IO.DirectoryInfo() = di.GetDirectories()
  67. Dim dinfo As System.IO.DirectoryInfo
  68. For Each dinfo In dinfos
  69. ZipDirectory(fos, zos, dinfo, SRootDir)
  70. Next
  71.  
  72. End Sub
  73.  
  74. Private Sub ZipOneFile(ByVal fos As java.io.FileOutputStream, ByVal zos As java.util.zip.ZipOutputStream, ByVal sFullName As String)
  75. Dim fis As java.io.FileInputStream
  76. Dim ze As java.util.zip.ZipEntry
  77. 'give the zip entry or the folder arrangement for the file
  78. ze = New java.util.zip.ZipEntry(sFullName.Substring(sFullNa me.LastIndexOf("\")))
  79. 'The DEFLATED method is the one of the methods to zip a file
  80. ze.setMethod(ze.DEFLATED)
  81. zos.putNextEntry(ze)
  82. 'Input stream for the file to zip
  83. fis = New java.io.FileInputStream(sFullName)
  84. 'Copy stream is a simple method to read a file input stream (file to zip) and write it to a file output stream(new zip file)
  85. CopyStream(fis, zos)
  86. zos.closeEntry()
  87. fis.close()
  88. End Sub
  89.  
  90. Private Sub CopyStream(ByVal src As java.io.FileInputStream, ByVal dest As java.util.zip.ZipOutputStream)
  91. Dim reader As New java.io.InputStreamReader(src)
  92. Dim writer As New java.io.OutputStreamWriter(dest)
  93. While reader.ready
  94. writer.write(reader.read)
  95. End While
  96. writer.flush()
  97. End Sub
  98.  
  99.  
  100.  

regards
Nagashree
Mar 23 '08 #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.