我需要創建一個文件夾中的所有文件名的列表。
舉例來說,如果我有:
000.jpg
012.jpg
013.jpg
我想將它們存儲在ArrayList
與[000,012,013]
作爲值。
在Java中使用它的最佳方式是什麼?
PS:我在Mac OS X
我需要創建一個文件夾中的所有文件名的列表。
舉例來說,如果我有:
000.jpg
012.jpg
013.jpg
我想將它們存儲在ArrayList
與[000,012,013]
作爲值。
在Java中使用它的最佳方式是什麼?
PS:我在Mac OS X
你可以那樣做:
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println("File " + listOfFiles[i].getName());
} else if (listOfFiles[i].isDirectory()) {
System.out.println("Directory " + listOfFiles[i].getName());
}
}
你想只得到JPEG文件或所有文件?
以下是如何查看documentation。
首先,您正在處理IO,因此請查看java.io
package。
有兩個看起來很有趣的課程:FileFilter和FileNameFilter。當我點擊第一個時,它顯示我在File類中有一個listFiles()
方法。而對於該方法的文檔說:
返回抽象路徑名 表示此抽象路徑名錶示的目錄 文件的數組。
在JavaDoc中滾動到File
,我看到構造函數。這真的是我需要能夠創建一個File
實例,並呼籲listFiles()
。滾動更進一步,我可以看到有關如何在不同的操作系統中命名文件的一些信息。
創建一個File
對象,將目錄路徑傳遞給構造函數。使用listFiles()
爲目錄中的每個文件檢索一組File
對象,然後調用getName()
方法獲取文件名。
List<String> results = new ArrayList<String>();
File[] files = new File("/path/to/the/directory").listFiles();
//If this pathname does not denote a directory, then listFiles() returns null.
for (File file : files) {
if (file.isFile()) {
results.add(file.getName());
}
}
你實際上應該調用'listFiles()';) – Progman 2011-04-17 15:48:29
@Progman可能會有所幫助。 :) – 2011-04-17 15:50:41
在我的文件夾中只有* .xml文件,是否有任何選項來檢查只有那些應該被視爲文件? – 2015-11-02 11:10:00
是的,但沒有處理擴展名取決於擴展名存在COS文件可能沒有擴展名也可能存在。 – Abhishek 2011-04-17 15:45:03
btw如果你想要當前文件夾,你可以使用'文件夾=新文件(「。」);'...比相同。示例'new File(「./"+ your_file);' – Csanesz 2014-10-28 08:25:30
@RoflcoptrException有一個疑問。這個listofFiles [i]指向文件夾中的第一個文件(最後創建的)還是最後一個文件(第一個創建的)?我的文件夾中的 – 2015-01-14 09:07:35