具有缩短路径的PathTooLongException

时间:2016-05-12 13:12:13

标签: c# path

我有一个超过260个字符的路径,并尝试使用FileInfo从此路径中检索文件中的文件信息。但我得到了PathTooLongException。我用以下代码缩短了它:

if (longName.Length >= 247)
{
    longName = @"\\?\" + longName;
}
StringBuilder shortPath = new StringBuilder(300);
GetShortPathName(longName, shortPath, shortPath.Capacity);
return shortPath.ToString();

现在我的路径只有139个字符,但我仍然从FileInfo获得PathTooLongException。有谁知道为什么?

缩短路径只是一个占位符,就像长路径的连接一样,而FileInfo正在使用长路径吗?

编辑:执行发生在这里:

string fileName = ToShortPathName(_path);
fileName = fileName.Replace(@"\\?\", "");
fileInformations.FileName = fileName;
fileInformations.FullPath = _path;
=> fileInformations.FileLastChanged = File.GetLastWriteTime(fileName);

EDIT2:错误位置的fileName是:

D:\\06PROJ~1\\1094IH~1\\FACHBE~1\\IT\\Azubi\\KH\\PROJEK~1\\VISUAL~1\\USB_BA~1\\packages\\NUNIT3~1.0\\lib\\PORTAB~1.IOS\\NUNITF~1.DLL

0 个答案:

没有答案