我正在尝试创建一个程序,它将打印当前目录中的所有文件(但不是目录),目前我所拥有的是打印我的主目录中的所有文件和目录。我怎么能改变这个?
我的代码:
File[] fileList = new File(System.getProperty("user.home")).listFiles();
另外,我如何打印这些文件的详细信息?我想要文件大小,权限,我能得到的任何东西,以便使我的程序相当于unix中的ls -a。
有人可以帮我解决这个问题,因为我无法在任何地方找到相关的Java函数吗?
非常感谢!
答案 0 :(得分:0)
循环数组并仅打印具有isFile()
true
(或isDirectory()
false
)的数组。当前目录是simpyl new File("")
您可以通过调用相应方法获取所有详细信息,例如canRead()
,canWrite()
,length()
等。查看the documentation了解更多信息
答案 1 :(得分:0)
您可以使用FileFilter摆脱dirs
File[] files = new File(System.getProperty("user.home")).listFiles(new FileFilter() {
public boolean accept(File file) {
return !file.isDirectory();
}
});
您可以使用file.length()
答案 2 :(得分:0)
通过为其初始化文件对象然后使用该对象中的listFiles()方法获取当前目录。然后遍历结果列表并使用File.isFile()方法测试每个文件:
File cwd = new File(".");
File[] fileList = cwd.listFiles()
for (File aFile : fileList) {
if (aFile.isFile()) {
System.out.println(aFile);
}
}
您可以使用canExecute(),canRead()和canWrite()方法查看您的程序是否可以执行这些操作。正如另一个答案所述,length()将为您提供大小。
答案 3 :(得分:0)
您可以使用FileFilter
来获取文件,如下所示:
File dir = new File("/path/to/directory");
FileFilter fileFilter = new FileFilter() {
public boolean accept(File file) {
return file.isFile();
}
};
File[] files = dir.listFiles(fileFilter);
for (File file : files) {
System.out.println("File: " + file);
}
答案 4 :(得分:0)
你的问题没有意义。
你要求你在Bozho中打印当前目录中的文件列表,但具体要求“user.home”中的文件列表,这是你的主目录。
如果您不想列出主目录中的文件,请更改代码以从其他位置请求文件。