Как вывести список всех файлов больше заданного аргумента? - PullRequest
3 голосов
/ 21 марта 2020

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

public static void main(String[] args) throws IOException {

    File f = new File(".");
    int KB = 1024;
    String[] files = f.list();

    for (String string : files) {
        if (f.length() > 50*KB)
        System.out.println(string);
    }
}

Ответы [ 2 ]

4 голосов
/ 21 марта 2020

Метод length () для проверки размера файла имеет тип File, а не String.

Попробуйте:

public static void main(String[] args) throws IOException {
    File f = new File(".");
    int KB = 1024;
    File[] allSubFiles = f.listFiles();
    for (File file : allSubFiles) {
        if (file.length() > 50 * KB) {
            System.out.println(file.getName());
        }
    }
}
3 голосов
/ 21 марта 2020

File имеет метод File#length, который дает количество байтов файлового объекта. Вам нужно разделить это число на 1024, чтобы получить количество килобайт.

Предполагая, что для данного массива файлов вы можете сделать следующее:

File[] files = getFiles();
for (File f : files) {
    if (f.length() / 1024 > 50) {
        System.out.println(f.getName());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...