2012-11-28 91 views
0

任何人都可以帮助我如何将文件夹转换为经典asp中的zip文件。如何将文件夹转换为zip。文件在asp经典

<% 
Dim objZip 
Response.write("new") 
Set objZip = Server.CreateObject("Scripting.FileSystemObject") 
Response.write("yahoo") 
objZip.Pack "C:\inetpub\wwwroot\NewZIp\Images\SMM.JPEG", "C:\inetpub\wwwroot\NewZIp\Images.zip" 
objZip.Pack "C:\inetpub\wwwroot\NewZIp\Images\IMS.JPEG", "C:\inetpub\wwwroot\NewZIp\Images.zip" 
Set objZip = Nothing 
%> 

我用这一个代码转换文件夹压缩

+0

你试过了什么? Google的一次快速搜索使我立即开始了一个工作示例:http://forums.aspfree.com/code-bank-54/creating-zip-files-using-classic-asp-66544.html – Andrew

+0

HI,<% Dim objZip Response.write(“new”) Set objZip = Server.CreateObject(“Scripting.FileSystemObject”) Response.write(“yahoo”) objZip.Pack“C:\ inetpub \ wwwroot \ NewZIp \ Images \ SMM .JPEG“,”C:\ inetpub \ wwwroot \ NewZIp \ Images.zip“ objZip.Pack”C:\ inetpub \ wwwroot \ NewZIp \ Images \ IMS.JPEG“,”C:\ inetpub \ wwwroot \ NewZIp \ Images .zip“ Set objZip = Nothing %>我使用这一个代码将文件夹转换为zip – user1649028

回答

-1

这可以很容易地在asp.net使用C#来完成。以下代码将帮助您压缩文件夹。

using System; 
using System.IO; 
using System.IO.Packaging; 

namespace ZipSample 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      AddFileToZip("Output.zip", @"C:\Windows\ABC.exe"); 
      AddFileToZip("Output.zip", @"C:\Windows\System32\DEF.exe"); 
     } 

     private const long BUFFER_SIZE = 4096; 

     private static void AddFileToZip(string zipFilename, string fileToAdd) 
     { 
      using (Package zip = System.IO.Packaging.Package.Open(zipFilename, FileMode.OpenOrCreate)) 
      { 
       string destFilename = ".\\" + Path.GetFileName(fileToAdd); 
       Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative)); 
       if (zip.PartExists(uri)) 
       { 
        zip.DeletePart(uri); 
       } 
       PackagePart part = zip.CreatePart(uri, "",CompressionOption.Normal); 
       using (FileStream fileStream = new FileStream(fileToAdd, FileMode.Open, FileAccess.Read)) 
       { 
        using (Stream dest = part.GetStream()) 
        { 
         CopyStream(fileStream, dest); 
        } 
       } 
      } 
     } 

     private static void CopyStream(System.IO.FileStream inputStream, System.IO.Stream outputStream) 
     { 
      long bufferSize = inputStream.Length < BUFFER_SIZE ? inputStream.Length : BUFFER_SIZE; 
      byte[] buffer = new byte[bufferSize]; 
      int bytesRead = 0; 
      long bytesWritten = 0; 
      while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) != 0) 
      { 
       outputStream.Write(buffer, 0, bytesRead); 
       bytesWritten += bufferSize; 
      } 
     } 
    } 
} 
+0

请求的是传统ASP,而不是.Net – WilliamK