0

我有一个JTextField用户必须输入以逗号分隔的文件路径

我将文本字段值放入一个数组中:

String[] filename = filename.split(","); // where filename is the jtextfield value

我需要检查数组中每个文件的大小。

如果文件大小超过 10 MB,我需要通知用户。

如何将文件路径数组转换为文件数组并计算Java中每个文件的文件大小?

我尝试使用:

File[] files = new File[filename.length];    

for(int i=0;i < filename.length;i++){    
    long filesizeinbytes=files[i].length;    
    long filesizeinkb= filesizeinbytes/1024;    
    long filesizeinmb=filesizeinkb/1024;    
}
4

3 回答 3

1

您忘记了数组initialize中的每个元素。files它会抛出一个NPE.

long totalFileSizeOfAllFiles = 0;
for(int i=0;i < filename.length;i++){    
    files[i] = new File(filename[i]); // This is required.
    long filesizeinbytes=files[i].length(); // Also length is a method.
    totalFileSizeOfAllFiles+=filesizeinbytes; // To get the total size of all the files present.

PS:-这里的假设是filename[]数组中的每个条目都是所考虑的每个文件的正确绝对/相对路径

于 2013-05-07T05:04:44.657 回答
0

似乎这里缺少一些东西,你在哪里创建数组内的 File 对象

File[] files = new File[filename.length];    
for(int i=0;i < filename.length;i++){    
    File f = new File(filename[i]);
    long filesizeinbytes=f.length();    
    long filesizeinkb= filesizeinbytes/1024;    
    long filesizeinmb=filesizeinkb/1024;    

}

于 2013-05-07T05:05:51.283 回答
0
for(String path:fileName){
File file=new File(path);

long fileSizeInBytes = file.length();
long fileSizeInKB = fileSizeInBytes / 1024;
long fileSizeInMB = fileSizeInKB / 1024;

if (fileSizeInMB > 10) {
 // code to iform user
}
}
于 2013-05-07T05:11:38.303 回答