我们经常会遇到编制VS2003压缩代码的问题,也会遇到将VS2003压缩代码修改的的问题。那么,如何解决此类问题呢?下文就给大家进行全面的讲解。

昨天到今天搞了一整天的VS2003压缩代码,我都快崩溃了! 一看到那些代码,脑袋顿时就像爆炸一样,所以有了许多的问题出现,还好,我一个个把他记录下来了,同时,在相关论坛上找了一些相关的解决办法,分享一下,供大家相互学习交流

阐述VS2003压缩代码的有关常识  VS2003压缩代码 第1张

1、首先从这里下载0.84版本的VS2003压缩代码及示例码。

2、下载下来之后你发现它没有VS2003的解决方案文件,没有关系。你可以自己建立,首先新建一个ZipUnzip的解决方案,然后,将上面经过解压缩之后的所有文件及目录COPY到你的解决方案所在的目录下。 #t#

3、在VS2003解决方案资源管理器(一般是在右上方中部点的位置)中点击显示所有文件按钮,然后可以见到很多“虚”的图标、文件及文件夹等,可以一次选择它们,然后包含进项目中。

4、编译,***使用Release选项,编译完成之后你可以在\bin\Release\看到ZipUnzip.dll的类了。如果你编译时报错,说什么AssemblyKeyFile之类的,你可以使用强命名工具新建一个,也可以将AssemblyInfo.cs中[assembly: AssemblyKeyFile("。。。。。")]改成:[assembly: AssemblyKeyFile("")] (不推荐这样做)。

5、新建一个WEBFORM项目,添加ZipUnzip.dll类的引用,然后添加如下文件及内容:

  1. usingSystem;
  2. usingSystem.IO;
  3. usingICSharpCode.SharpZipLib.Zip;
  4. usingICSharpCode.SharpZipLib.GZip;
  5. usingICSharpCode.SharpZipLib.BZip2;
  6. usingICSharpCode.SharpZipLib.Checksums;
  7. usingICSharpCode.SharpZipLib.Zip.Compression;
  8. usingICSharpCode.SharpZipLib.Zip.Compression.Streams;
  9. namespaceWebZipUnzip
  10. {
  11.  publicclassAttachmentUnZip
  12.  {
  13. publicAttachmentUnZip()
  14. {}
  15. publicstaticvoidUpZip(stringzipFile)
  16. {
  17. string[]FileProperties=newstring[2];
  18. FileProperties[0]=zipFile;//待解压的文件
  19. FileProperties[1]=zipFile.Substring(0,zipFile.LastIndexOf("\\")+1);//解压后放置的目标目录
  20. UnZipClassUnZc=newUnZipClass();
  21. UnZc.UnZip(FileProperties);
  22. }
  23.  }
  24. }
  25. //---------------------------------------------
  26. //2.UnZipClass.cs
  27. //---------------------------------------------
  28. usingSystem;
  29. usingSystem.IO;
  30. usingICSharpCode.SharpZipLib.Zip;
  31. usingICSharpCode.SharpZipLib.GZip;
  32. usingICSharpCode.SharpZipLib.BZip2;
  33. usingICSharpCode.SharpZipLib.Checksums;
  34. usingICSharpCode.SharpZipLib.Zip.Compression;
  35. usingICSharpCode.SharpZipLib.Zip.Compression.Streams;
  36. namespaceWebZipUnzip
  37. {
  38.  publicclassUnZipClass
  39.  {
  40. ///
  41. ///解压文件
  42. ///
  43. ///包含要解压的文件名和要解压到的目录名数组
  44. publicvoidUnZip(string[]args)
  45. {
  46. ZipInputStreams=newZipInputStream(File.OpenRead(args[0]));
  47. try
  48. {
  49.  ZipEntrytheEntry;
  50.  while((theEntry=s.GetNextEntry())!=null)
  51.  {
  52. stringdirectoryName=Path.GetDirectoryName(args[1]);
  53. stringfileName=Path.GetFileName(theEntry.Name);
  54. //生成解压目录
  55. Directory.CreateDirectory(directoryName);
  56. if(fileName!=String.Empty)
  57. {
  58. //解压文件到指定的目录
  59. FileStreamstreamWriter=File.Create(args[1]+fileName);
  60. intsize=2048;
  61. byte[]data=newbyte[2048];
  62. while(true)
  63. {
  64.  ssize=s.Read(data,0,data.Length);
  65.  if(size>0)
  66.  {
  67. streamWriter.Write(data,0,size);
  68.  }
  69.  else
  70.  {
  71. break;
  72.  }
  73. }
  74. streamWriter.Close();
  75. }
  76.  }
  77.  s.Close();
  78. }
  79. catch(Exceptioneu)
  80. {
  81.  throweu;
  82. }
  83. finally
  84. {
  85.  s.Close();
  86. }
  87. }//endUnZip
  88. publicstaticboolUnZipFile(stringfile,stringdir)
  89. {
  90. try
  91. {
  92.  if(!Directory.Exists(dir))
  93. Directory.CreateDirectory(dir);
  94. stringfileFullName=Path.Combine(dir,file);
  95. ZipInputStreams=newZipInputStream(File.OpenRead(fileFullName));
  96.  
  97. ZipEntrytheEntry;
  98. while((theEntry=s.GetNextEntry())!=null)
  99. {
  100. stringdirectoryName=Path.GetDirectoryName(theEntry.Name);
  101. stringfileName=Path.GetFileName(theEntry.Name);
  102.  
  103. if(directoryName!=String.Empty)
  104.  Directory.CreateDirectory(Path.Combine(dir,directoryName));
  105.  if(fileName!=String.Empty)
  106.  {
  107. FileStreamstreamWriter=File.Create(Path.Combine(dir,theEntry.Name));
  108. intsize=2048;
  109. byte[]data=newbyte[2048];
  110. while(true)
  111. {
  112. ssize=s.Read(data,0,data.Length);
  113. if(size>0)
  114. {
  115.  streamWriter.Write(data,0,size);
  116. }
  117. else
  118. {
  119.  break;
  120. }
  121. }
  122. streamWriter.Close();
  123.  }
  124. }
  125. s.Close();
  126. returntrue;
  127. }
  128. catch(Exception)
  129. {
  130. throw;
  131. }
  132.  }
  133. }//endUnZipClass
  134. }

此方案解决了文件名中文字的问题,目录VS2003压缩代码问题,至于整个文件夹批量上传并压缩成一个WINZIP压缩包的问题,没有时间解决了,各位如有解决方案,不妨共享一下。

转载请说明出处
知优网 » 阐述VS2003压缩代码的有关常识

发表评论

您需要后才能发表评论