【问题标题】:Obtain size of a file from his path从他的路径获取文件的大小
【发布时间】:2014-11-21 11:17:21
【问题描述】:

我正在尝试通过他的路径获取文件的大小。 我不知道我在哪里做错了,因为我可以获得所有其他信息,但是当我尝试获取文件的大小时,它返回 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.length() 按预期工作。如果文件是目录、文件为空、无法读取文件或文件不存在,则会得到 0。

标签: java android file path size


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    File file=new File(path_to_file);
    FileInputStream fin=new FileInputStream(file);
    int size =fin.available();
    

    【讨论】:

      【解决方案3】:

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

      文件文件=new File(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!");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-07
        • 2010-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-16
        相关资源
        最近更新 更多