我环顾四周,似乎没有任何关于使用 sharpziplib 将多个 zip 文件提取到同一目录的信息。我正在使用 Telerik 控件 RadUpload 上传两个不同的 zip 文件夹,上传后它们会自动解压缩到与 zip 同名的文件夹中到同一目录。
例如:我有 autocorrect.zip 和 entertainment.zip。自动更正提取到名为“自动更正”的文件夹,娱乐提取到名为“娱乐”的文件夹。自动更正位于第一个框中,而娱乐位于第二个框中。
但在提取文件夹中只出现“娱乐”。现在我认为这是因为我当前设置解压缩方法的方式是它采用第一个值“自动更正”,然后它也将“娱乐”作为第一个值,因此不再列出“自动更正”以进行提取.
这是我解压缩方法的代码,如果您认为我的代码的其他部分会有所帮助,请说,我会发布更多信息:
public static void UnZip(string sourcePath, string targetPath)
{
//Creates instance of fastzip from library ICSharpCode
ICSharpCode.SharpZipLib.Zip.FastZip fz = new FastZip();
//Extracts zip from sourcePath to target path which is chosen in the button click methods
fz.ExtractZip(sourcePath, targetPath, "");
}
编辑:这是使用 zip 文件的保存路径和提取的 zip 的保存路径调用解压缩的按钮方法(忘了说它适用于一个 zip,但不适用于多个 zip)
protected void SubmitButton_Click(object sender, EventArgs e)
{
//Gets the name of the file being uploaded
foreach (UploadedFile file in RadUpload1.UploadedFiles)
{
fileName = file.GetName();
}
//Path where zip files are uploaded
String savePath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerik\";
//Adds name of uploaded file onto end of saved path
savePath += fileName;
//Path where the extracted files from the uploaded zip are placed
String unZipPath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerikExtract\";
unZipPath += fileName;
//Runs unzipping method
UnZip(savePath, unZipPath);