Java 从他的路径获取文件的大小
我正试图通过他的路径得到一个文件的大小。 我不知道我哪里做错了,因为我可以获取所有其他信息,但当我尝试获取文件大小时,它返回0Java 从他的路径获取文件的大小,java,android,file,path,size,Java,Android,File,Path,Size,我正试图通过他的路径得到一个文件的大小。 我不知道我哪里做错了,因为我可以获取所有其他信息,但当我尝试获取文件大小时,它返回0 File file = new File(Environment.getExternalStorageDirectory(), MainActivity.filePath); long fileLength = file.length(); //here is where i get 0 String fileSize = String.valueOf(fileL
File file = new File(Environment.getExternalStorageDirectory(), MainActivity.filePath);
long fileLength = file.length(); //here is where i get 0
String fileSize = String.valueOf(fileLength);
String fileName = file.getName();
String fileExtension = MainActivity.filePath.substring((MainActivity.filePath.lastIndexOf(".") + 1), MainActivity.filePath.length());
我获得了所有其他信息权限,因此这不是路径问题。即使文件不存在,您也将获得文件名。file.exists()返回什么?我猜错了。仔细检查路径。只需使用length()并转换kb、mb、gb等:
File file=new File(path_to_file);
FileInputStream fin=new FileInputStream(file);
int size =fin.available();
文件文件=新文件(文件路径)
file.length()
按预期工作。如果文件为目录、文件为空、无法读取文件或文件不存在,则将获得0。
if(file.exists()){
double bytes = file.length();
double kilobytes = (bytes / 1024);
double megabytes = (kilobytes / 1024);
double gigabytes = (megabytes / 1024);
double terabytes = (gigabytes / 1024);
double petabytes = (terabytes / 1024);
double exabytes = (petabytes / 1024);
double zettabytes = (exabytes / 1024);
double yottabytes = (zettabytes / 1024);
System.out.println("bytes : " + bytes);
System.out.println("kilobytes : " + kilobytes);
System.out.println("megabytes : " + megabytes);
System.out.println("gigabytes : " + gigabytes);
System.out.println("terabytes : " + terabytes);
System.out.println("petabytes : " + petabytes);
System.out.println("exabytes : " + exabytes);
System.out.println("zettabytes : " + zettabytes);
System.out.println("yottabytes : " + yottabytes);
}else{
System.out.println("File does not exists!");
}