Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ZipForge删除包含已添加文件的文件夹_C#_Asp.net - Fatal编程技术网

C# 使用ZipForge删除包含已添加文件的文件夹

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 )

我有以下文件:

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 );              

 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:我已经更新了我的答案,以显示另一种方法。这就是重点!非常感谢。我忘了那门课上的选项:)谢谢。向上投票