gpt4 book ai didi

c# - ExtractToDirectory 给出 "Error: The specified path, file name, or both are too long."

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:11 25 4
gpt4 key购买 nike

我正在尝试解压缩一个 zip 文件:

public string unzip(string zipFilePath, string destinationFolder)
{
try
{
ZipFile.ExtractToDirectory(zipFilePath, destinationFolder);
return destinationFolder;
}
catch (Exception ex)
{
throw ex;
}
}

当我为 zipFilePath 传递以下值时:

t:\aaaaaaa aaaaaaaaaa aaaaaaaa\aaaa aaaaaa\aaaa aaaaaaaaaa aaaaaa\aaaa aaaaaa aaa.a aaaa\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.zip

和这个destinationFolder:

C:\Users\A312\Documents\Visual Studio 2013\Projects\PDFConverterTester\PDFConverterTester_BatchGUI\bin\Debug\tempZip\466-qqqqqqqqq qqqqqqqq qqqqqq qqqq qqqqq qqqqqqqqqqq

抛出异常:

The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

当我使用 PKZip 将其解压到 destinationFolder 时,没有问题。

但 zip 存档中有一个文件,解压缩后,其完整路径为 261 个字符。

知道如何处理这个吗?

更新:我公司的 IT 政策不允许我安装任何新软件,因此我试图弄清楚如何通过我现有的 Visual Studio 安装的 .NET 4.5 调用 Windows API 来解决这个问题。

最佳答案

尝试在完整路径前加上 \\?\ 前缀以规避 260/248 字符限制:

\\?\t:\aaaaaaa aaaaaaaaaa aaaaaaaa\aaaa aaaaaa\aaaa aaaaaaaaaa aaaaaa\aaaa aaaaaa aaa.a aaaa\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.zip

可在此处找到更多信息:https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

您还应该谨慎使用此函数,因为它会禁用 Windows 对文件系统中有效文件名的检查。

关于c# - ExtractToDirectory 给出 "Error: The specified path, file name, or both are too long.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41336780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com