我有一個文件查找功能,我昨天做了一個問題,該方法用於返回一個文件,但它總是返回null,所以我改變它返回文件路徑,它仍然返回null即使它不是,這裏是代碼和輸出:爲什麼我的getString()方法總是返回null?
public static String lookupFile(File file, String name) {
File[] list = file.listFiles();
if(list != null) {
for (File fil : list) {
String n = fil.getName().replace(name, "");
if (n.length() != 0) {
if(fil.isDirectory())
lookupFile(fil , name);
} else if (n.length() == 0) {
String g = fil.toPath().toString();
System.out.println(fil.getName());
System.out.println(g);
return g;
}
}
}
return null;
}
的方法,我使用它是像這樣:
String n = Sys.lookupFile(new File(Sys.getAppData() + "g/"), "ggf.rtf");
System.out.println(n);
輸出是這樣的:
ggf.rtf
C:\Users\NAME\AppData\Roaming\g\h - Copy (5) - Copy\h - Copy (5)\ggf.rtf
null
爲什麼它返回後變爲null?在返回字符串之前,它將它打印出來,並且我們可以看到它不是null,所以出了什麼問題?
郵報滿級更清晰。 – 2014-10-30 09:42:23
你有權訪問調試器嗎?你可以放置一個斷點,看看哪裏出錯了,爲什麼你的方法返回null?是你的'列表'null,即file.listFiles()返回null?如果我坦率地說,這些問題是毫無意義的。他們不會教你任何東西,也沒有人能夠幫助你。您需要放置斷點,查看究竟發生了什麼,然後確定事情發生錯誤的地方以及如何解決問題。 – kha 2014-10-30 09:46:04
@kha列表不爲空,你可以看到,在它返回「g」之前它會打印出來,而且你可以在輸出中看到它不是null,但是當我打印函數返回的值時,它是空值。 – ABOODYFJ 2014-10-30 09:49:08