我有以下文件:
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
。如果我打开它,会看到两个文件夹item11
和item12
,并且每个文件夹都会存在XLS文件。
如何直接存档这些文件,意味着如果我打开ZIP文件,我想看到这两个文件而不导航文件夹。
谢谢
答案 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();
结束编辑