将文件路径数组转换为文件数组并计算每个文件的大小

时间:2013-05-07 05:00:51

标签: java arrays swing jtextfield filesize

我有一个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;    
}

3 个答案:

答案 0 :(得分: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[]数组中的每个条目都是正在考虑的每个文件的正确绝对/相对路径

答案 1 :(得分: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;    

}

答案 2 :(得分: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
}
}