2013-01-16 63 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/