我试图通过他的路径获取文件的大小。 我不知道我在哪里做错了因为我可以获得所有其他信息,但是当我尝试获取文件的大小时,它会返回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());
我获得了所有其他信息权利,因此它不是路径问题。
答案 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!");
}