Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从他的路径获取文件的大小_Java_Android_File_Path_Size - Fatal编程技术网

Java 从他的路径获取文件的大小

Java 从他的路径获取文件的大小,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

我正试图通过他的路径得到一个文件的大小。 我不知道我哪里做错了,因为我可以获取所有其他信息,但当我尝试获取文件大小时,它返回0

 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!");
}