加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用.NET删除Zip文件中的目录?

发布时间:2020-12-16 00:19:44 所属栏目:百科 来源:网络整理
导读:如何删除.zip中的目录及其中的所有文件(最好使用DotNetZip)? 现在我正在浏览zip中的所有文件,但它不起作用: foreach (ZipEntry e in zip){ //If the file is in the directory I want to delete if(e.FileName.Substring(0,9) == "FolderName/") { zip.Rem
如何删除.zip中的目录及其中的所有文件(最好使用DotNetZip)?

现在我正在浏览zip中的所有文件,但它不起作用:

foreach (ZipEntry e in zip)
{
    //If the file is in the directory I want to delete
    if(e.FileName.Substring(0,9) == "FolderName/")
    {
        zip.RemoveEntry(e.FileName);                          
    }
}

是否有更好的方法,如果没有,我将如何使这项工作?

解决方法

第一次尝试.从集合中删除元素时,不要使用foreach循环.
我会这样试试

for(int x = zip.Count -1; x >= 0; x--) 
{ 
    ZipEntry e = zip[x];
    if(e.FileName.Substring(0,9) == "FolderName/") 
        zip.RemoveEntry(e.FileName);                           
}

但是,看一下ZipFile类的方法,我注意到了这个方法:
返回ICollection的SelectEntries.所以我认为可以这样做:
编辑:使用重载版本SelectEntries(字符串,字符串)

var selection = zip1.SelectEntries("*.*","FolderName");
for(x = selection.Count - 1; x >= 0; x--)
{
    ZipEntry e = selection[x];
    zip.RemoveEntry(e.FileName);                           
}

删除zipfile中所有条目的循环

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读