在我的应用程序中,我可以选择拍摄/选择照片,音频或视频文件。我将每个文件路径写入其自己的字符串中,并对其执行一些操作。另外,我用它来确定与下面的方法将文件大小: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