删除包含ZipForge添加文件的文件夹

时间:2012-03-14 09:00:40

标签: c# asp.net

我有以下文件:

C:\ ITEM1 \第11项\ item1.xls

C:\ ITEM1 \ item12 \ item11.xls

如果我遵循此代码:

ZipForge zip = new ZipForge();            
try {               
 zip.FileName = Path.Combine( "C:\\" , "arch-01.zip");              

 zip.OpenArchive( System.IO.FileMode.Create );              

 zip.BaseDir = "C:\\"              

 zip.AddFiles( "C:\item1\item11\item1.xls");                            

 zip.AddFiles( "C:\item1\item12\item11.xls");                             

 zip.CloseArchive();             
} catch ( Exception e ) {              
Console.Write( e.Message );           
}

打开ZIP文件时,我看到一个文件夹item1。如果我打开它,会看到两个文件夹item11item12,并且每个文件夹都会存在XLS文件。

如何直接存档这些文件,意味着如果我打开ZIP文件,我想看到这两个文件而不导航文件夹。

谢谢

1 个答案:

答案 0 :(得分:1)

要创建“平面”zip文件,您必须设置BaseDir类的ZipForge属性 到文件(到zip)所在的目录路径。

以下示例演示了这一点。

ZipForge zip = new ZipForge();

zip.FileName = Path.Combine("C:\\", "arch-01.zip");
zip.OpenArchive(System.IO.FileMode.Create);

zip.BaseDir = @"C:\item1\item11";
zip.AddFiles(@"C:\item1\item11\item1.xls");

zip.BaseDir = @"C:\item1\item12";
zip.AddFiles(@"C:\item1\item12\item11.xls");

zip.CloseArchive();

开始编辑

另一种方法是使用ArchiverOptions类的StorePath枚举:

ZipForge zip = new ZipForge();

zip.FileName = Path.Combine("C:\\", "arch-01.zip");
zip.OpenArchive(System.IO.FileMode.Create);

// Set option to store no path.
zip.Options.StorePath = StorePathMode.NoPath;

zip.AddFiles(@"C:\item1\item11\item1.xls");    
zip.AddFiles(@"C:\item1\item12\item11.xls");

zip.CloseArchive();

结束编辑