有没有任何方法可以使用System.IO.Compression功能检查文件是否是有效的zip文件?
发布于 2016-08-17 03:34:57
解决方案:使用ZipFile.OpenRead()方法打开zip归档,并列出所有条目;如果没有出现异常,则归档是有效的。
例如:
public static bool IsZipValid(string path)
{
try
{
using (var zipFile = ZipFile.OpenRead(path))
{
var entries = zipFile.Entries;
return true;
}
}
catch (InvalidDataException)
{
return false;
}
}发布于 2016-08-16 10:44:01
使用ExtractToDirectory提取ZIP文件,并在InvalidDataException中为无效的ZIP文件编写代码。
关于"InvalidDataException“的出丑:-
sourceArchiveFileName指定的归档不是有效的zip归档。
-或者-
没有找到或损坏了存档条目。
-或者-
使用不支持的压缩方法压缩了存档条目。
try
{
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
string extractPath = @"c:\example\extract";
ZipFile.CreateFromDirectory(startPath, zipPath);
ZipFile.ExtractToDirectory(zipPath, extractPath);
}
catch (InvalidDataException ex)
{
//Handle invalid zip here
}https://stackoverflow.com/questions/38970926
复制相似问题