我有一些简单的代码......
try
{
files = root.GetFiles("*.*");
//throws exception filetoolong exception. Skip file and move
}
catch (UnauthorizedAccessException e)
{
throw;
}
问题是,如果文件路径太长,这可能会引发异常......
System.IO.PathTooLongException未处理
消息=指定的 路径,文件名或两者都太长。完全限定的文件名 必须少于260个字符,目录名必须少于 超过248个字符。
来源= mscorlib
有没有办法只是跳过很长的文件,目前我的程序刚刚停止,我现在该如何避免这个异常?
答案 0 :(得分:1)
避免异常的唯一方法是不要尝试枚举文件超出给定规格的文件夹,这些文件基于MAX_PATH常量或不使用文件。
我没有使用它,但您可以尝试AplhaFS - http://alphafs.codeplex.com/
答案 1 :(得分:0)
有关文件路径长度限制的更多信息: Naming Files, Paths, and Namespaces (Windows)
有几种方法可以解决这个问题,但是为了使用这些变通方法,你可能需要P / Invoke到支持文件路径长度的非常专业的调用子集> MAX_PATH