【发布时间】:2012-10-08 16:41:07
【问题描述】:
我正在尝试在我的设备上的 SD 上创建一个文件。这在一周前有效,但现在无效,我不明白为什么。
Logcat 打印:
java.io.FileNotFoundException ...pathtofile... (no such file or directory)
所以,文件没有被创建。我对 android manifest 有正确的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
我是这样创建文件的:
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
base = Environment.getExternalStorageDirectory().getAbsolutePath();
}
String fname = File.separator +"VID_"+ timeStamp + ".3gp";
mediaFile = new File(base+fname);
然后我检查它是否存在:
if(mediaFile.exists()){
Log.v("mediaFile","ex");
}else{
Log.v("mediaFile","no ex");
}
日志说它不存在。我也尝试过使用 file.createNewFile(),但它不起作用。
所以,一周前它可以工作,现在它不能工作,这可能是 SD 卡的问题 ????会不会是某种BUG!!!???
谢谢
编辑:更多代码
创建文件的函数是:
private static File getOutputMediaFile()
调用自:
private static Uri getOutputMediaFileUri(){
return Uri.fromFile(getOutputMediaFile());
}
并将 mediarecorder 输出设置为:
vMediaRecorder.setOutputFile(getOutputMediaFileUri().toString());
所以,当我执行 mediarecorder.prepare() 时:
try {
vMediaRecorder.prepare();
} catch (IllegalStateException e) {
Log.v("RELEASE VIDREC1",e.toString());
releaseMediaRecorder();
return false;
} **catch (IOException e) {
Log.v("RELEASE VIDREC2",e.toString());
releaseMediaRecorder();
return false;**
}
粗体的 catch 是运行并打印的:
java.io.FileNotFoundException ...pathtofile... (no such file or directory)
【问题讨论】:
-
是的,文件没有创建:(