尝试提取.jar文件时,我不断获取:
提取存档条目会创建一个超出指定目标目录的文件
任何人都可以帮助我吗?这是我的代码:
try
{
using (ZipArchive archive = ZipFile.Open(jarLocationTXT.Text, ZipArchiveMode.Update))
{
archive.ExtractToDirectory(@"C:\Users\Neglekt\Monix Software\MCMI\CurExtract\");
}
}
catch (IOException ExtrEx)
{
MessageBox.Show(ExtrEx.ToString());
MessageBox.Show("An error occured while processing your data! \n Error code: E:002", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
答案 0 :(得分:1)
documentation表示在以下情况下抛出类似的异常:
例如,条目名称包含父目录访问者。
父目录访问者例如是..
。当您在命令提示符下键入cd ..
时,您告诉更改目录(cd
)程序转到父目录,这就是{{1}意味着。因此抛出异常是因为zip文件中的条目包含对某个父目录的引用。
在使用..
时,似乎没有办法绕过该检查,因此选项是使用静态或扩展方法滚动自己的提取方法。我的意思是创建一个你自己的方法:
ExtractToDirectory
。Entries
ZipArchiveEntry
提取到一个文件。