我有以下文件:Windows中的長路徑錯誤?
C:\Users\Jan\Documents\Visual Studio 2010\Projects\AzureTests\Build\82df3c44-0482-47a7-a5d8-9b39a79cf359.cskpg\WebRole1_778722b2-eb95-476d-af6a-917f269a0814.cssx\39e5cb39-cd18-4e1a-9c25-72bd1ad41b49.csman
我可以通過記事本打開的窗口中打開此文件罰款++,或者通過瀏覽。但是,通過運行窗口打開不起作用。它給出了'無法找到文件'對話框。當我查詢文件系統在C#中有:
var dir = new DirectoryInfo(@"C:\Users\Jan\...")
var fil = dir.GetFiles("*.csman")[0];
的文件也在返回的文件列表中,但我不能做:
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(fil.FullName);
因爲這將失敗,並「在不正確的數據(1,1)'錯誤。因爲XmlDocument
認爲該文件是空的。但是,該文件上的File.ReadAllBytes
成功。這工作:
var buf = File.ReadAllBytes(fil.FullName);
using (var ms = new MemoryStream())
{
ms.Write(buf, 0, (int) buf.Length);
ms.Seek(0, SeekOrigin.Begin);
xmlDoc.Load(ms);
}
調用時,不會發生問題......
xmlDoc.Save(fil.FullName);
有人能解釋這裏發生了什麼?
204個字符遠遠沒有任何限制。再想一想。 – 2011-12-23 10:44:00
使用xmlDoc.Load – 2011-12-23 10:44:05
Windows中的許多API具有260個字符的限制,但是204個字符的數量低於此值,所以這不是問題的原因。 – CodesInChaos 2011-12-23 10:44:14