我正在尝试获取某些文件的长度(以字节为单位)。问题是我的长度为零,而长度不为零(我检查过!)
而且,我在这些文件上使用的每个其他文件的方法都可以正常工作。所以这只是长度的问题。
为什么会这样?
谢谢。
//add all files names in the directory into array
String[] files = new File(sourcedir).list();
filesNamesList.addAll(Arrays.asList(files));
filesNamesList.removeIf(name -> ((new File(sourcedir + PATH_BACK_SLASH + name))
.isDirectory()));
for (String f:files){
File e = new File(f);
System.out.println((e).length());
}
}
最佳答案
您的文件路径可能不正确。
Java的File.length() Javadoc指出,如果找不到该文件,则length()
可能返回0L。
此抽象路径名表示的文件的长度(以字节为单位),如果文件不存在,则为0L。某些操作系统可能返回0L作为表示与系统有关的实体(例如设备或管道)的路径名。”
因此,如果确定文件中包含内容,则可能找不到正确的文件。请仔细检查您的文件路径,然后重试。
另外,如果您需要更详细的错误信息,则javadoc建议使用Files.readAttributes()。我在这里回应他们的观点。
关于java - File.length()返回0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56646219/