我正在提取这样的 zip 文件
ZipFile.ExtractToDirectory(zipFile, extractTo);
Run Code Online (Sandbox Code Playgroud)
但我得到了
{"Could not find a part of the path 'C:\\....many subfolders\\Extremely long filename'."}
Run Code Online (Sandbox Code Playgroud)
该 zip 文件包含一个路径很长的文件,文件名总共约 280 个字符。我不确定这是否是我启用长路径的问题,如此处所示https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-在 Windows-10/ 上
如果我在资源管理器中打开路径,它会打开,但具有长文件名的文件不存在。如果我打开 zip 文件,该文件就在那里,因此提取长文件名的文件似乎存在问题。
是否可以在 zip 提取过程中跳过文件或允许提取长文件名的文件?
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
if (entry.FullName.Length > 280)
continue;
entry.ExtractToFile(Path.Combine("your path", entry.FullName));
}
}
Run Code Online (Sandbox Code Playgroud)
ZipFile.OpenRead将允许您检查 zip 文件的内容。然后,您可以通过该.Entries属性进行枚举,找出存档内的所有文件,并根据文件名长度决定是否继续提取。
| 归档时间: |
|
| 查看次数: |
2971 次 |
| 最近记录: |