C# 使用ZipForge删除包含已添加文件的文件夹
我有以下文件: C:\item1\item11\item1.xls C:\item1\item12\item11.xls 如果我遵循此代码:C# 使用ZipForge删除包含已添加文件的文件夹,c#,asp.net,C#,Asp.net,我有以下文件: C:\item1\item11\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 )
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文件,我希望在不浏览文件夹的情况下查看这两个文件
谢谢为了创建“平面”zip文件,您必须设置ZipForge
类的BaseDir
属性
到文件(到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();
结束编辑这不是解决方案。我的意思是,我只想查看文件,而不想浏览文件夹。或者,查看包含所有文件的单个文件夹。(当然是我选的)@MichaelSwan:为什么?如果我理解正确,您正在尝试创建一个不包含文件夹的zip文件。上面的代码创建了一个没有文件夹的zip文件。@MichaelSwan:我已经更新了我的答案,以显示另一种方法。这就是重点!非常感谢。我忘了那门课上的选项:)谢谢。向上投票