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

时间:2014-11-21 11:17:21

标签: 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(fileLength); 
 String fileName = file.getName();
 String fileExtension = MainActivity.filePath.substring((MainActivity.filePath.lastIndexOf(".") + 1), MainActivity.filePath.length());

我获得了所有其他信息权利,因此它不是路径问题。

3 个答案:

答案 0 :(得分:1)

即使文件不存在,您也会获得文件名。 file.exists()返回什么?我猜错了。仔细检查你的路径。

答案 1 :(得分:0)

File file=new File(path_to_file);
FileInputStream fin=new FileInputStream(file);
int size =fin.available();

答案 2 :(得分:0)

只需使用length()并转换kb,mb,gb等:

文件文件=新文件(filePath);

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