我目前需要将文件夹文件名的内容加载到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