我想列出目錄中文件的數量。但我無法這樣做,我懷疑它與父目錄名稱中的空格有關。
什麼我做的是在.properties文件中我設置爲值 -目錄名中帶有空格的文件對象
dir.loc=H:/Main/dir one/dir - two/dir3/dir four
dir.name=Run
現在在java的文件,我設置這些值的字符串變量 -
String s1 = properties.getProperty("dir.loc");
String s2 = properties.getProperty("dir.name");
我創建了一個文件對象 -
File f = new File(s1, s2);
File[] fList = f.listFiles();
現在,這裏的fList
是null
;
H驅動器在另一臺遠程機器上,我認爲java程序試圖在本地定位'運行'目錄,而不是在H驅動器上找到它,並且因爲它找不到'運行'列表返回null
。
當我在一個簡單的Java類嘗試作爲 -
File f = new File("H:/Main/dir one/dir - two/dir3/dir four", "Run");
然後我得到與f.listFiles().length;
所以結果我猜它可能必須做一些與提取值從屬性文件和分配給一個String變量。
我的假設是否正確?
這個問題有什麼可能的解決辦法?
如何加載屬性以及`new File(s1,s2).getAbsolutePath()`的值是什麼? – 2011-12-15 10:38:35
這就是'getAbsolutePath()`得到的打印爲'H:\ Main \ dir one \ dir - two \ dir3 \ dir four \ Run',我將屬性文件簡單地加載爲``properties.load(Thread。 currentThread).getContextClassLoader()。getResourceAsStream(「Test.properties」));` – 2011-12-15 10:49:20
好吧,它似乎沒有什麼不同,在你的「直接」例子中,那有什麼奇怪的。在驅動器「H」上重新檢查您的訪問權限;此外,您可以嘗試設置UNC路徑(以\\ machine \ share \ target`的形式)。 – 2011-12-15 11:54:07