2013-01-16 62 views
3

我有一些简单的代码,因为这样...如何忽略pathtoolong异常?

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

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

System.IO.PathTooLongException了未处理
消息=指定 路径,文件名,或两者均为太长。完全合格的文件名 必须少于260个字符,并且目录名称必须 小于248个字符。
源= mscorlib程序

有什么办法只是为了跳过很长的文件,目前我的程序只是停止,我该如何避免这种例外呢?

+1

的非常专业化的子集,你知道'块是有什么'赶上(UnauthorizedAccessException E)和wh它在你的情况呢?我怀疑你应该在[的try-catch语句和异常处理(http://msdn.microsoft.com/en-us/library/0yd65esw%28v=vs.80%29.aspx)首先读了。 –

+1

你确定这个异常是由'root.GetFiles(“*。*”)引发的吗? –

+1

如果您不在意无法访问这些文件,那么只需添加System.IO.PathTooLongException的catch。 –

回答

1

就可避免异常的唯一方法就是不要试图枚举一个文件夹,这些超出的基础上,不断MAX_PATH或没有文件的工作给予规范文件。

我没有使用它,但你可以尝试AplhaFS - 有关文件路径长度的限制http://alphafs.codeplex.com/