0

我正在处理大量文件,比如使用 java 程序处理 1000 个文件。处理每个文件需要大量时间。问题是:当我处理文件时,由于一些未知问题(可能是防病毒或任何其他问题)输入文件无法被 java 程序访问,所以我得到“访问被拒绝”并最终得到“java.io .FileNotFoundException”。

一种可能的解决方案是,每当我遇到异常时,我都会再次调用该函数来处理文件,但是使用文件名调用该函数很困难,因为该函数是递归函数,它递归地处理目录和文件。请建议我替代方法。

4

2 回答 2

1

保留处理失败的文件列表,并在遇到异常时将文件添加到列表中。

一旦递归调用结束,检查列表是否有任何数据,如果有,处理它们。

于 2013-01-21T20:10:29.277 回答
1

将 catch() 移动到递归方法的主体内。

void readFilesRecursively(File dirOrFile){

    boolean successfullRead=false;
    for(; !successfullRead ;){
        try{
            ..........Read....
            successfullRead=true;
        }catch(java.io.FileNotFoundException ex){}
    }

}
于 2013-01-21T19:02:48.230 回答