在我的應用程序中,我可以選擇拍攝/選擇照片,音頻或視頻文件。我將每個文件路徑寫入其自己的字符串中,並對其執行一些操作。另外,我用它來確定與下面的方法將文件大小:android無法獲取拍攝照片的大小..一個錯誤?
public double getSize(String path) {
File file = new File(path);
if (file.exists()) {
long size = file.length();
return size;
} else {
Log.e("zero size", "the file size is zero!");
return 0;
}
}
它工作正常,但該方法總是返回0,而試圖讓所拍攝圖片的大小。
double s = 1.0 * getSize(taken_pic_path)/1024/1024;
taken_pic_path 100%正確的原因有3個:1)。我使用相同的路徑來創建預覽,它的工作原理。 2)。我讓路徑通過吐司顯示,它似乎是正確的3)。我用file.exists()檢查路徑,它返回true。我也試過如下:
File file = new File(taken_pic_path);
if (file.exists()){
double test = file.lenght();
}
我總是得到一個零文件大小..相同的技術完美地與拍攝的視頻,音頻拍攝,選擇的圖片/視頻/音頻,我只得到0,而試圖獲取拍攝照片的大小。只是不能得到原因..任何想法?
編輯 我做了一切可能的檢查:
if (file.exists()) {
String b = file.getPath();
boolean r = file.canRead();
boolean w = file.canWrite();
double d = file.length();
Toast.makeText(getApplicationContext(), b, Toast.LENGTH_LONG)
.show();
Toast.makeText(getApplicationContext(), Boolean.toString(r),
Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), Boolean.toString(w),
Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), Double.toString(d),
Toast.LENGTH_LONG).show();
}
OUTPUT:正確的文件路徑/真/真/ 0.0
什麼是地獄......
爲什麼會返回一個雙? – njzk2
它是0之前,你分裂它? – njzk2
我被告知在前一個主題中使用double,否則當結果小於1時,我會得到一個零。然後我使用一種方法將其舍入到2位小數。是的,它已經是零。 getSize總是返回0用於該路徑 – Droidman