如何忽略pathtoolong异常?

时间:2013-01-16 14:47:54

标签: c#

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

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

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

  

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

有没有办法只是跳过很长的文件,目前我的程序刚刚停止,我现在该如何避免这个异常?

2 个答案:

答案 0 :(得分:1)

避免异常的唯一方法是不要尝试枚举文件超出给定规格的文件夹,这些文件基于MAX_PATH常量或不使用文件。

我没有使用它,但您可以尝试AplhaFS - http://alphafs.codeplex.com/

答案 1 :(得分:0)

有关文件路径长度限制的更多信息: Naming Files, Paths, and Namespaces (Windows)

有几种方法可以解决这个问题,但是为了使用这些变通方法,你可能需要P / Invoke到支持文件路径长度的非常专业的调用子集> MAX_PATH