【发布时间】:2014-05-11 22:33:35
【问题描述】:
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
}
遇到异常
System.IO.PathTooLongException 发生 HResult=-2147024690
Message=指定的路径、文件名或两者都太长。完全 限定文件名必须少于 260 个字符,并且 目录名称必须少于 248 个字符。来源=mscorlib
堆栈跟踪: 在 System.IO.Path.NormalizePath(字符串路径,布尔 fullCheck,Int32 maxPathLength,布尔 expandShortPaths) 在 System.IO.Path.GetDirectoryName(字符串路径) 在 f:\Practice 中的 Sameer.FilePathExtension.GetDirectory(StringfullyQualifiedFileName) Projects\Sameer\Sameer\FilePathExtension.cs:第 137 行 InnerException:
我想知道为什么 GetDirectoryName 必须依赖于路径或文件名字符限制。
【问题讨论】: