我正在处理大量文件,比如使用 java 程序处理 1000 个文件。处理每个文件需要大量时间。问题是:当我处理文件时,由于一些未知问题(可能是防病毒或任何其他问题)输入文件无法被 java 程序访问,所以我得到“访问被拒绝”并最终得到“java.io .FileNotFoundException”。
一种可能的解决方案是,每当我遇到异常时,我都会再次调用该函数来处理文件,但是使用文件名调用该函数很困难,因为该函数是递归函数,它递归地处理目录和文件。请建议我替代方法。
我正在处理大量文件,比如使用 java 程序处理 1000 个文件。处理每个文件需要大量时间。问题是:当我处理文件时,由于一些未知问题(可能是防病毒或任何其他问题)输入文件无法被 java 程序访问,所以我得到“访问被拒绝”并最终得到“java.io .FileNotFoundException”。
一种可能的解决方案是,每当我遇到异常时,我都会再次调用该函数来处理文件,但是使用文件名调用该函数很困难,因为该函数是递归函数,它递归地处理目录和文件。请建议我替代方法。
保留处理失败的文件列表,并在遇到异常时将文件添加到列表中。
一旦递归调用结束,检查列表是否有任何数据,如果有,处理它们。
将 catch() 移动到递归方法的主体内。
void readFilesRecursively(File dirOrFile){
boolean successfullRead=false;
for(; !successfullRead ;){
try{
..........Read....
successfullRead=true;
}catch(java.io.FileNotFoundException ex){}
}
}