这是如何在Java中完成的?我希望创建一个在程序中输出的fileNames数组,这些文件将是我主目录中的文件。
到目前为止,我有:
File[] fileList = new File(user.home).listFiles()
这就是我需要的吗?
然后,要打印出这些文件,我可以这样做:
int i = 0;
while (fileList.getNext() != null) {
System.out.println(filelist[i]
i++
}
非常感谢。
答案 0 :(得分:4)
看起来你是对的。我把你的代码整理得更干净了。
File[] fileList = new File(System.getProperty("user.home")).listFiles();
for (int i=0;i < fileList.length;i++) {
System.out.println(fileList[i]);
}
答案 1 :(得分:3)
或多或少是的,但如果只需要文件名,则需要检查该文件是否是文件而不是目录。
public static String[] fileNames(String directoryPath) {
File dir = new File(directoryPath);
Collection<String> files =new ArrayList<String>();
if(dir.isDirectory()){
File[] listFiles = dir.listFiles();
for(File file : listFiles){
if(file.isFile()) {
files.add(file.getName());
}
}
}
return files.toArray(new String[]{});
}
答案 2 :(得分:1)
是的,这就是我们如何从本地目录获取文件列表。请注意,listFiles()还将包含目录。因此,如果您只对文件感兴趣,那么您必须在每个文件上检查isFile()。如果您有兴趣获得选择性文件用户FileFilter。
答案 3 :(得分:0)
您应该将文件列表更改为此
File[] fileList = new File(System.getProperty("user.home")).listFiles();
答案 4 :(得分:0)
这是构建主目录中存在的文件数组的最简单方法。使用循环,您可以非常轻松地获取所有文件的名称。这是代码:
// Building array of files.
File folder = new File(System.getProperty("user.home"));
File[] listOfFiles = folder.listFiles();
// Iterating array of files for printing name of all files present in the directory.
for (int i = 0; i < listOfFiles.length; i++) {
System.out.println("File Name: " +listOfFiles[i]);
}