ルート ディレクトリとそのサブディレクトリでファイルを検索しようとしています。
Step1- 指定したパスでディレクトリを検索します。Step2- 上記のディレクトリが見つかった場合は、そのサブディレクトリの 1 つでファイルを探します。
このために、再帰的に検索する以下のコード スニペットを使用します。ここでの問題は、上記の両方の要件を満たしている場合に、再帰から抜け出すにはどうすればよいかということです..?
boolean bFileFound = false;
File fileFound = null;
private void findFile( File aFile, String sDir ){
String filePath = aFile.getAbsolutePath();
if( aFile.isFile() && filePath.contains( sDir ) ){
if( aFile.getName().contains( "test2.adv")){
Log.d(TAG, "[FILE] " + aFile.getName() );
fileFound = aFile;
bFileFound = true;
}
// return true;
}else if( aFile.isDirectory() ){
String sDirName = aFile.getName();
Log.d(TAG, "[DIR] " + sDirName );
if( sDirName.contains( sDir ) ){
Log.d( TAG, "Found the directory..& Absolute Path = " + aFile.getAbsolutePath());
sDir = sDirName;
}
File[] listFiles = aFile.listFiles();
if( listFiles != null ){
for( int i = 0; i < listFiles.length; i++ ){
if(bFileFound)
return;
findFile( listFiles[ i ], sDir );
}
}else{
Log.d( TAG, " [ACCESS DENIED]" );
}
}
// return null;
}
ありがとう、DK