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