如何使用C#ZipFile处理空的zip文件

时间:2019-01-15 14:53:15

标签: c# .net zipfile

我有一个C#程序,可使用ZipFile解压缩文件。它通常可以正常工作,但是如果zip文件为空,则会失败。

代码:

System.IO.Compression.ZipFile.ExtractToDirectory(fileName, dirName);

是否可以检测zip文件是否为空并将其删除? (如果文件失败并且不为空,我不想删除该文件。)

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

if (!string.IsNullOrEmpty(dirName) && Directory.Exists(dirName))
{
    try
    {
        System.IO.Compression.ZipFile.ExtractToDirectory(fileName, dirName);
    }
    catch (ArgumentException ex)
    {
        // file is empty (as we already checked for directory)
        File.Delete(fileName);
    }


    // OR

    if (new FileInfo(fileName).Length == 0)
    {
        // empty
        File.Delete(fileName);
    }
    else
    {
        System.IO.Compression.ZipFile.ExtractToDirectory(fileName, dirName);
    }
}

How to check if file is empty