Получение сведений о файле, а не распечатка справки каталога - PullRequest
0 голосов
/ 11 марта 2011

Я пытаюсь создать программу, которая будет печатать все файлы в моем текущем каталоге (но не в каталогах), и на данный момент у меня есть печать всех файлов и каталогов в моем домашнем каталоге.Как я могу это изменить?

Мой код на данный момент:

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

Кроме того, как можно распечатать детали этих файлов?Я хотел бы, чтобы размер файла, разрешения и все, что я мог получить, чтобы сделать мою программу эквивалентной ls -a в unix.

Может кто-нибудь помочь мне с этим, поскольку я не могу найти подходящую Javaработает где-нибудь?

Большое спасибо!

Ответы [ 5 ]

0 голосов
/ 11 марта 2011

Ваш вопрос не имеет смысла.

Вы просите в своем комментарии к Bozho напечатать список файлов в текущем каталоге, но специально запрашивает список файлов в "user.home", который является вашим домашним каталогом.

Если вы не хотите перечислять файлы в своем домашнем каталоге, измените свой код, чтобы запрашивать файлы откуда-то еще.

0 голосов
/ 11 марта 2011

Вы можете получить файлы, используя 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);
  }
0 голосов
/ 11 марта 2011

Вы можете использовать FileFilter, чтобы избавиться от каталогов

File[] files = new File(System.getProperty("user.home")).listFiles(new FileFilter() {
    public boolean accept(File file) {
        return !file.isDirectory();
    }
});

Размер файла можно получить с помощью file.length()

0 голосов
/ 11 марта 2011

Получить текущий каталог, инициализировав для него объект файла, а затем используя метод listFiles () из этого объекта.Затем зациклите полученный список и протестируйте каждый файл с помощью метода File.isFile () :

File cwd = new File(".");
File[] fileList = cwd.listFiles()
for (File aFile : fileList) {
    if (aFile.isFile()) {
        System.out.println(aFile);
    }
}

. Вы можете использовать canExecute () , * 1008Методы * canRead () и canWrite () позволяют выяснить, может ли ваша программа выполнить эти действия.Как отмечено в другом ответе, length () даст вам размер.

0 голосов
/ 11 марта 2011

Зацикливать массив и печатать только те, которые имеют isFile() true (или isDirectory() false). Текущий каталог просто new File("")

Все подробности вы можете получить, вызвав соответствующие методы, такие как canRead(), canWrite(), length() и т. Д. Проверьте в документации , чтобы узнать больше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...