0

Javaプログラムを使用して、たとえば1000個のファイルなど、多数のファイルを処理しています。各ファイルの処理にはかなりの時間がかかります。問題は次のとおりです。ファイルを処理するときに、未知の問題(ウイルス対策またはその他の問題の可能性があります)が原因で、Javaプログラムから入力ファイルにアクセスできないため、「アクセスが拒否されました」と最終的に「java.io」が表示されます.FileNotFoundException".

考えられる解決策の 1 つは、例外が発生するたびに関数を呼び出してファイルを再度処理することですが、この関数はディレクトリとファイルを再帰的に処理する再帰関数であるため、ファイル名で関数を呼び出すことは困難です。別の方法を教えてください。

4

2 に答える 2

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 に答える
1

処理が失敗したファイルのリストを保持し、例外が発生するたびにリストにファイルを追加します。

再帰呼び出しが終了したら、リストにデータがあるかどうかを確認し、ある場合はそれらを処理します。

于 2013-01-21T20:10:29.277 に答える