有人可以告诉我我在代码中哪里错了。我正在尝试搜索filename
在目录路径中命名的特定文件并尝试返回filepath
但它总是返回null
。
这是我正在使用的代码:
public String walk( String path, String filename ) {
String filePath = null;
File root = new File( path );
File[] list = root.listFiles();
for ( File f : list ) {
if ( f.isDirectory() ) {
walk( f.getAbsolutePath(),filename );
}
else if (f.getName().equalsIgnoreCase(filename)){
System.out.println( "File:" +f.getAbsolutePath() );
filePath= f.getAbsolutePath();
if(filePath.endsWith(memberPath)){
System.out.println( "Found: Should exit");
break;
}
}
}
System.out.println( "OUT of for:" );
return filePath;
}
它打印
出:
OUT of for:
File:d:\IM\EclipseWorkspaces\runtime-EclipseApplication\SIT\So\mmm\aaa\xxx.c
Should exit
OUT of for:
OUT of for:
我不明白为什么它仍然回到循环
编辑:更新:
我找到了另一种方法。如果有问题请更正:将文件路径声明为静态变量
public static void walk( String path, String filename ) {
File root = new File( path );
File[] list = root.listFiles();
for ( File f : list ) {
if ( f.isDirectory() ) {
walk( f.getAbsolutePath(),filename );
}
else if (f.getName().equalsIgnoreCase(filename) && f.getAbsolutePath().endsWith(memberPath)){
System.out.println( "Should exit");
filePath = f.getAbsolutePath();
break;
}
}
}