подсчитать символ имени файла и ограничить размер файла, чтобы показать Joptionpane - PullRequest
0 голосов
/ 23 февраля 2020

Я использую Jfilechooser, если я выберу файл, он будет считать количество символов имени файла, однако будет ограничивать, что если файл больше 3 КБ, будет отображаться Joptionpane. у меня проблема даже в том, что файл 0kb, выйдет Joptionpane, я не знаю, правильный ли мой код.

private int countWords(File f) {

    int filelength = 0;

    // Count of words.
    filelength = f.getName().length();

    double bytes = f.length();
    double kilobytes = (bytes / 1024);
    double limit = (1024 * 3);
    if (f.exists() && (kilobytes >= limit)) {
        JOptionPane.showConfirmDialog(null, "File Size:" + kilobytes + "KB", "Message Interrupted",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
    }

    return filelength;

}

1 Ответ

1 голос
/ 23 февраля 2020

Это ...

double kilobytes = (bytes / 1024);

берет байты файла и преобразует их в килобайты (1216 bytes в 1.1875)

Это ...

limit = (1024 * 3);

занимает 3 (килобайта) и преобразует его в байты (3072.0)

Итак, вы в конечном итоге сравниваете 1.875 с 3072, что не правильно. Вместо этого пропустите одно из преобразований, например ...

double bytes = f.length();
//double kilobytes = (bytes / 1024);
double limit = (1024 * 3);

if (f.exists() && (bytes >= limit)) { ... }

В моем тестировании у меня не было проблем с файлами 0kb

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