public static void Main()
{
// testing file name
var fileName =
"\\\\server7\\EmailAttachments\\myfolder\\abc\\2012\\1126\\e85c6b82-edc5-4ce1-9ad0-8025b92d0105-o.dom=38c55279fe168c290fb2b06a312b5d88&b=6f54a59ce903eeaff197f82937de4012.dom=38c55279fe168c290fb2b06a312b5d88&b=6f54a59ce903eeaff197f82937de4012=6f54a59ce903eeaff197f82937de4012.dom=38c55279fe168c290fb2b06a312b5d88&b=6f54a59ce903eeaff197f82937de4012";
var directory = fileName.GetDirectory();
}
public static string GetDirectory(this string fullyQualifiedFileName)
{
return Path.GetDirectoryName(fullyQualifiedFileName); // throwing exception here
}
獲取異常下面爲什麼Path.GetDirectoryName函數是依賴於260個字符限制
System.IO.PathTooLongException發生的HResult = -2147024690
消息=指定的路徑,文件名,或者兩者都過長。完整 限定文件名必須少於260個字符,並且 目錄名稱必須少於248個字符。源= mscorlib程序
堆棧跟蹤: 在System.IO.Path.NormalizePath(字符串路徑,布爾fullCheck,的Int32 maxPathLength,布爾expandShortPaths) 在System.IO.Path.GetDirectoryName(字符串路徑) 在Sameer.FilePathExtension.GetDirectory(字符串fullyQualifiedFileName)在F:\實踐 項目\薩米爾\薩米爾\ FilePathExtension.cs:137行的InnerException:
我很奇怪,爲什麼GetDirectoryName必須依賴路徑或文件名字符限制。
+1參考* *爲什麼它的工作原理是這樣的。即使這種推理看起來很奇怪,因爲底層文件系統都支持長路徑名。 – CodingIntrigue
我的問題是爲什麼Path.GetDirectoryName(文件名)必須依賴於限制。我認爲它只能是字符串操作,所以不應該依賴於限制。限制只能在保存文件時發揮作用。旁邊的** Path.GetFileName(fileName)完美**。 – Sameer