我目前需要將文件夾文件名的內容加載到arraylist中,但我不確定如何執行此操作。將文件名添加到java中的數組列表中
爲了說明問題,我有一個One.txt,Two.txt,Three.txt等文件夾我希望能夠將這個列表加載到一個數組列表中,這樣如果我要檢查數組列表的內容將是:
的ArrayList [0] =一個
ArrayList的[1] =兩個
ArrayList中[3] =三個
如果任何人都可以給我任何洞察到這一點,將是非常讚賞。
我目前需要將文件夾文件名的內容加載到arraylist中,但我不確定如何執行此操作。將文件名添加到java中的數組列表中
爲了說明問題,我有一個One.txt,Two.txt,Three.txt等文件夾我希望能夠將這個列表加載到一個數組列表中,這樣如果我要檢查數組列表的內容將是:
的ArrayList [0] =一個
ArrayList的[1] =兩個
ArrayList中[3] =三個
如果任何人都可以給我任何洞察到這一點,將是非常讚賞。
您可以
File folder = new File("myfolder");
if (folder.isDirectory())
{
// you can get all the names
String[] fileNames = folder.list();
// you can get directly files objects
File[] files = folder.listFiles();
}
這是我看到的第一種方法,它完美地滿足了我所需要的。我沒有意識到File類中的isDirectory方法。我想它適合不正確地查看API。無論如何,謝謝你的例子。 – 2010-03-30 00:30:33
嘗試查看java的文件API,特別是list()功能。
File my_dir = new File("DirectoryName");
assert(my_dir.exists()); // the directory exists
assert(my_dir.isDirectory()); // and is actually a directory
String[] filenames_in_dir = my_dir.list();
現在filenames_in_dir
是所有的文件名,這幾乎正是你想要的東西的數組。
如果你想剝離各個文件名的擴展名,這是基本的字符串處理 - 遍歷文件名並照顧每一個。
File dir = new File("/some/path/name");
List<String> list = new ArrayList<String>();
if (dir.isDirectory()) {
String[] files = dir.list();
Pattern p = Pattern.compile("^(.*?)\\.txt$");
for (String file : files) {
Matcher m = p.matcher(file);
if (m.matches()) {
list.add(m.group(1));
}
}
}
非常感謝你的和每一個elses快速回應..它非常感謝!當我回家時,我會研究這些答案。謝謝:) – 2010-03-28 14:57:02
看看java.io.File它給你所有你可能需要的控件。 這是它的URL http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html
感謝您的鏈接= - )有一點看。在問:/我的壞之前,我真的應該看看那個 – 2010-03-30 00:31:00
這是一個使用java.io.File.list(FilenameFilter)
的解決方案。它保留了.txt
後綴;如果你真的需要的話,你可以很容易地去除它們。
File dir = new File(".");
List<String> list = Arrays.asList(dir.list(
new FilenameFilter() {
@Override public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
}
));
System.out.println(list);
這裏是我的回答,我用這個之前親自把所有的文件名,
在一個loadsave功能在我的遊戲之一來使用。
public void getFiles(String path){
//Put filenames in arraylist<string>
File dir = new File(path);
ArrayList<String> filenames = new ArrayList<String>();
for(File file : dir.listFiles()){
savefiles.add(file.getName());
}
//Check if the files are in the arraylist
for (int i = 0; i < savefiles.size(); i++){
String s = savefiles.get(i);
System.out.println("File "+i+" : "+s);
}
System.out.println("\n");
}
我希望可以一直使用到您爲C: - 擁抱玫瑰
看樣子你有一個數組,這比集合API中發現的一個ArrayList不同。 – 2010-03-28 17:51:05
我一定是剛剛描述它,我只是爲了簡單起見而這樣。它正在使用一個ArrayList。 – 2010-03-30 00:29:11