如何在 C# 中的 WinRAR、7Zip、Zip、Tar、Winzip 中检查文件是不是存在

Posted

技术标签:

【中文标题】如何在 C# 中的 WinRAR、7Zip、Zip、Tar、Winzip 中检查文件是不是存在【英文标题】:How to Check File Exist or Not in WinRAR, 7Zip, Zip, Tar, Winzip in C#如何在 C# 中的 WinRAR、7Zip、Zip、Tar、Winzip 中检查文件是否存在 【发布时间】:2020-02-15 06:59:38 【问题描述】:

在我的项目中,我正在上传7ZipZipTarWinzipWinRAR 等文件。

现在我想使用 C# 检查上传的存档中是否存在特定文件。

谁能帮帮我?

【问题讨论】:

你试过什么? ***.com/help/how-to-ask 为什么需要检查它是否存在 in WinRAR、7Zip、Zip、Tar 或 WinZip 而不是只检查它是否存在? 这里有点像:***.com/questions/5978567/… 在我的项目中,用户将上传 WinRAR、7Zip、Zip、Tar 或 Winzip 文件,但对于少数验证,例如上传的 zip 包含有效文件/文件夹,上传的文件中有任何病毒或任何无效文件或我们不允许的任何其他资源或文件等 例如,我有 3 个不同的文件 ABC1.txt、ABC2.txt 和 ABC3.txt,现在我为相同的文件创建 WinRAR 文件。现在根据我的记录 WinRAR 文件没问题,有 3 个不同的文件,但现在有人在服务器中打开该文件并错误删除任何文件假设 ABC2.txt 被删除,然后当我提取 WinRAR 文件时,找不到 ABC2.txt并且根据我的项目逻辑的进一步依赖/功能,我的代码将抛出自定义异常文件 ABC2.txt 文件未找到。 【参考方案1】:
using (ZipArchive archive = ZipFile.OpenRead(zipPath))

    Boolean isFolderExist = false;

    foreach (ZipArchiveEntry entry in archive.Entries) 
        if (entry.FullName.Contains("PDFsDir/"))                        
            isFolderExist = true;
        
    

    if (isFolderExist) 
        Console.WriteLine("the folder which name is pictures exists in zip file");
        if(entry.FileName.Contains( "PDFsDir" )==true) 
            Console.WriteLine("File Exist");
        
     else 
        Console.WriteLine("the folder doesn't exist ");
    

【讨论】:

阅读 zip 或 rar 文件的最佳示例:docs.microsoft.com/en-us/dotnet/api/… 嗨 Manish,它适用于所有扩展,例如 rar、7z、zip、tar?

以上是关于如何在 C# 中的 WinRAR、7Zip、Zip、Tar、Winzip 中检查文件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

7zip:在C#中,如何将不同目录下的多个同名文件添加到同一个zip文件中?

解决Cmder弹窗7zip or Winrar not found Not installed

解决Cmder弹窗7zip or Winrar not found Not installed

解决Cmder弹窗7zip or Winrar not found Not installed

解决Cmder弹窗7zip or Winrar not found Not installed

解决Cmder弹窗7zip or Winrar not found Not installed