使用System.IO.Compression验证zip文件
本文关键字:zip 文件 验证 Compression System IO 使用 | 更新日期: 2023-09-27 18:02:30
是否有办法使用System.IO.Compression功能检查文件是否为有效的zip文件?
解决方案:使用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;
}
}
使用ExtractToDirectory
提取ZIP文件,并在InvalidDataException
中编写无效ZIP文件的代码。
关于"InvalidDataException" exception:-
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
}