获取文件详细信息而不是打印目录帮助

时间:2011-03-10 23:17:21

标签: java file

我正在尝试创建一个程序,它将打印当前目录中的所有文件(但不是目录),目前我所拥有的是打印我的主目录中的所有文件和目录。我怎么能改变这个?

我的代码:

File[] fileList = new File(System.getProperty("user.home")).listFiles();

另外,我如何打印这些文件的详细信息?我想要文件大小,权限,我能得到的任何东西,以便使我的程序相当于unix中的ls -a。

有人可以帮我解决这个问题,因为我无法在任何地方找到相关的Java函数吗?

非常感谢!

5 个答案:

答案 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”中的文件列表,这是你的主目录。

如果您不想列出主目录中的文件,请更改代码以从其他位置请求文件。