首页 > 解决方案 > 计算文件名字符并限制文件大小以显示 Joptionpane

问题描述

我使用 Jfilechooser,如果我选择文件,它将计算文件名的字符数,但是如果文件超过 3kb,它将显示 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;

}

标签: javafilenamesfilesize

解决方案


这个...

double kilobytes = (bytes / 1024);

正在获取文件字节并将其转换为千字节(1216 bytesto 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 文件没有任何问题


推荐阅读