如何在asp.net中生成zip文件
我正在使用.NETFramework2.0。我需要从文件夹路径“D:\Nagaraj\New Project Read Document\TCBILPOS\TCBILPOS\TCBILPOS\FileBuild\HOST”中创建zip文件…在该主机文件夹中有7个txt文件。因此,现在我想在同一文件夹路径“D:\Nagaraj\New Project Read Document\TCBILPOS\TCBILPOS\TCBILPOS\FileBuild”中创建zip文件“HOST.zip”……提前感谢如何在asp.net中生成zip文件,asp.net,Asp.net,我正在使用.NETFramework2.0。我需要从文件夹路径“D:\Nagaraj\New Project Read Document\TCBILPOS\TCBILPOS\TCBILPOS\FileBuild\HOST”中创建zip文件…在该主机文件夹中有7个txt文件。因此,现在我想在同一文件夹路径“D:\Nagaraj\New Project Read Document\TCBILPOS\TCBILPOS\TCBILPOS\FileBuild”中创建zip文件“HOST.zip”……提前感
您可以选择使用第三方库,也可以使用J#(其中包含压缩功能以保持与Java库的兼容性)。该链接中包含完整的源代码。有大量,但就我个人而言,我通常使用适当的命令行开关启动进程。无需使用第三方。。我们可以通过将J#库与C#结合使用来实现这一点。 只需添加对vjslib.dll的引用并添加这些名称空间
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using java.io;
using java.util.zip;
using System.IO;
using System.Text
现在,j#和C#的混合出现在画面中。类FileOutputStream
zipoutpstream
FileInputStream
和ZipEntry
是在压缩中起重要作用的j类
StringBuilder sb = new StringBuilder();
string ZipFileName = String.Format(@"C:\ZippedFolders\({0}).MyZip.zip",DateTime.Now.ToString("yyyyMMdd"));
string theDirectory = @"C:\Sarat";
try
{
sb.Append(String.Format("Directory To Zip: {0}.<br/>", theDirectory));
sb.Append(String.Format("Zip file: {0}.<br/>", ZipFileName));
string[] allFiles = Directory.GetFiles(theDirectory, "*.*", SearchOption.AllDirectories);
if (System.IO.File.Exists(ZipFileName))
{
System.IO.File.Delete(ZipFileName);
sb.Append(String.Format("Deleted old Zip file: {0}.<br/>", ZipFileName));
}
FileOutputStream fos = new FileOutputStream(ZipFileName);
ZipOutputStream zos = new ZipOutputStream(fos);
zos.setLevel(9);
for (int i = 0; i < allFiles.Length; i++ )
{
string sourceFile = allFiles[i];
FileInputStream fis = new FileInputStream(sourceFile);
ZipEntry ze = new ZipEntry(sourceFile.Replace(theDirectory + @"\", ""));
zos.putNextEntry(ze);
sbyte[] buffer = new sbyte[1024];
int len;
while ((len = fis.read(buffer)) >= 0)
{
zos.write(buffer, 0, len);
}
fis.close();
}
zos.closeEntry();
zos.close();
fos.close();
sb.Append(String.Format("Folder {0} Zipped successfuly to File {1}.<br/>", theDirectory, ZipFileName));
}
catch (Exception eX)
{
sb.Append(String.Format("Error zipping folder {0}. Details: {1}. Stack Trace: {2}.<br/>", theDirectory, eX.Message, eX.StackTrace));
}
StringBuilder sb=新建StringBuilder();
string ZipFileName=string.Format(@“C:\ZippedFolders\({0}).MyZip.zip”,DateTime.Now.ToString(“yyyyMMdd”);
string theDirectory=@“C:\Sarat”;
尝试
{
Append(String.Format(“目录到Zip:{0}.
”,theDirectory));
sb.Append(String.Format(“Zip文件:{0}.
”,ZipFileName));
字符串[]allFiles=Directory.GetFiles(目录“***”,SearchOption.AllDirectories);
if(System.IO.File.Exists(ZipFileName))
{
System.IO.File.Delete(ZipFileName);
sb.Append(String.Format(“删除的旧Zip文件:{0}.
”,ZipFileName));
}
FileOutputStream fos=新的FileOutputStream(ZipFileName);
ZipoutStream zos=新ZipoutStream(fos);
zos.setLevel(9);
for(int i=0;i=0)
{
写入(缓冲区,0,len);
}
fis.close();
}
zos.closeEntry();
zos.close();
fos.close();
sb.Append(String.Format(“文件夹{0}成功压缩到文件{1}.
”,目录,ZipFileName));
}
捕获(例外情况除外)
{
sb.Append(String.Format(“压缩文件夹{0}时出错。详细信息:{1}。堆栈跟踪:{2}.
”,目录,例如Message,例如StackTrace));
}
这可能会对您有所帮助。副本