3

我有一些简单的代码......

try
{
    files = root.GetFiles("*.*"); 
    //throws exception filetoolong exception.  Skip file and move
}
catch (UnauthorizedAccessException e)
{
     throw;
}

问题是如果文件路径太长,这可能会引发异常......

System.IO.PathTooLongException 未处理
Message=指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。
源=mscorlib

有什么办法可以跳过很长的文件,目前我的程序刚刚停止,我现在如何避免这个异常?

4

2 回答 2

1

避免异常的唯一方法是不要尝试枚举一个文件夹,其中的文件超出基于 MAX_PATH 常量的给定规范或不使用任何文件。

我没用过,但你可以试试 AplhaFS - http://alphafs.codeplex.com/

于 2013-01-16T15:19:22.093 回答
0

有关文件路径长度限制的更多信息: 命名文件、路径和命名空间 (Windows)

几种方法可以解决此问题,但为了使用这些解决方法,您可能必须 P/Invoke 到支持文件路径长度 > MAX_PATH 的非常专业的调用子集

于 2013-01-16T15:26:49.763 回答