我想在C#中使用各種文件功能,如File.GetLastWriteTime
,複製命令放置在路徑大於最大允許的路徑在Windows 7 ie 260上的文件。它給我一個錯誤長路徑名稱。在MSDN支持上,他們要求在路徑前使用\\?\
。我做了同樣的事情,但我仍然得到了同樣的錯誤,似乎沒有任何改變。以下是我的代碼。請讓我知道如果我使用它正確的或我需要添加任何東西:
這些所有的lib我使用的代碼是有其他的事情也:錯誤:文件路徑太長
下面是各個代碼:
filesToBeCopied = Directory.GetFiles(path,"*",SearchOption.AllDirectories);
for (int j = 0; j < filesToBeCopied.Length; j++)
{
try
{
String filepath = @"\\?\" + filesToBeCopied[j];
File.GetLastWriteTime(filepath);
}
catch (Exception ex)
{
MessageBox.Show("Error Inside the single file iteration for the path:" +
filesToBeCopied[j] + " . The exception is :" + ex.Message);
}
}
其中as path是在Windows機器上以驅動器號開頭的文件夾的路徑。爲前:d:\abc\bcd\cd\cdc\dc\..........
是什麼路徑看起來像是造成錯誤?你能把它粘貼在這裏嗎? –
以下是路徑:'D:\ abcdefghi_abc \ abcdefghis abcd abcdef company1 \ abcdefghis abcd abcdef company \ project abcde \ Do Not Delete - EP120605003 \ 002圖像準備\法國興業銀行(開放式接入) - 返回2012年5月18日)\ 004 OCR \ 001 Ocr工作\ 003分區文件\ 4F33DBE75836ACFA95BE3B14B7BEFE5E.split' –
.Net不支持長路徑,您必須直接使用P/Invoke調用API或縮短路徑。 http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx –