2011-11-22 43 views
6

Tôi cần tính kích thước vật lý của một thư mục. Thuật toán ngây thơ để làm điều đó có thể là:kích thước thư mục android

public static long getFolderSize(File dir) { 
long size = 0; 
for (File file : dir.listFiles()) { 
    if (file.isFile()) { 
     System.out.println(file.getName() + " " + file.length()); 
     size += file.length(); 
    } 
    else 
     size += getFolderSize(file); 
} 
return size; 
} 

nhưng cách xử lý các liên kết tượng trưng?

+2

liên kết tượng trưng nghĩa là gì? – user370305

Trả lời

-1

Bạn tốt hơn sử dụng API khác để có được kích thước tập tin API mà có liên quan đến điều này sẽ

public static long getFolderSize(File dir) { 
long size = 0; 
for (File file : dir.listFiles()) { 
    if (file.isFile()) { 
     System.out.println(file.getName() + " " + file.getTotalSpace()); 
     size += file.getTotalSpace(); 
    } 
    else 
     size += getFolderSize(file); 
} 
return size; 
} 
+2

Tài liệu nói cho getTotalSpace(): "Trả về tổng kích thước tính theo byte của phân vùng chứa đường dẫn này". -> nó không trả về kích thước tập tin. + Nó chỉ có sẵn cho cấp api 9 (tôi phải chạy trên 1,6) – user954469

+0

+ các liên kết tượng trưng có thể tạo tham chiếu vòng tròn. – user954469

Các vấn đề liên quan