Как обрабатывать пустые zip-файлы с помощью C # ZipFile - PullRequest
0 голосов
/ 15 января 2019

У меня есть программа на C #, которая распаковывает файлы с помощью ZipFile. Обычно он работает, но если zip-файл пуст, происходит сбой.

код:

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

Есть ли способ определить, является ли zip-файл пустым, и удалить его? (Я не хочу удалять файл, если он не работает и он не пустой.)

1 Ответ

0 голосов
/ 15 января 2019

Вы можете попробовать это:

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

Как проверить, пуст ли файл

...