Android 尝试在AsynTask线程中上载图像时FileNotFoundException
以下是我在Android 尝试在AsynTask线程中上载图像时FileNotFoundException,android,file,android-asynctask,filenotfoundexception,Android,File,Android Asynctask,Filenotfoundexception,以下是我在AsynTask线程中的代码: File f = new File(Environment.getExternalStorageDirectory()+"/DCIM/IMG_20140210_130057.jpg"); boolean exist=f.exists(); //debug result exist=false. 此代码触发FileNotFoundException,但文件在那里 我已经添加了以下权限 <uses-permission android:name="
AsynTask
线程中的代码:
File f = new File(Environment.getExternalStorageDirectory()+"/DCIM/IMG_20140210_130057.jpg");
boolean exist=f.exists(); //debug result exist=false.
此代码触发FileNotFoundException
,但文件在那里
我已经添加了以下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
使用
您忘记调用
getAbsolutePath()
方法了吗
这样试试看
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/DCIM/IMG_20140210_130057.jpg");
试着打印出你正在构建的文件路径。你看到了吗?尝试添加读取外部存储的权限。谢谢大家。经过多次尝试。我发现问题在AsynTask。因为当我在MainActivity UI线程中获取文件代码时,File.exists返回true。但在AsynTask执行中,file.exists返回false。怎么会是这样?再次谢谢大家。我最终遇到了一个问题,在AsyncTask中,当从一个列表传递参数到另一个列表时,当将对象转换回字符串时,它自动添加了[/mnt/sdcard…],这导致FileNotFound异常。抱歉占用您的时间。日志中的路径是:/mnt/sdcard/DCIM/IMG\u 20140210\u 130057.jpg。文件只是在同一位置。如果尝试,file.exists()仍然返回false。谢谢。@cc5zhenhua您测试的是哪台设备?您是第一位客人。谢谢。@CC5振华欢迎您。:)嘿,有时候看看.jpg、.jpg、.jpg,看起来不一样了。请确保文件的扩展名是正确的。谢谢。我发现在主活动线程中,file.exists()返回true,但在AsycntTask的执行中,file.exists()返回false。因此,这个问题很有可能与AsycnTask有关。
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/DCIM/IMG_20140210_130057.jpg");
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Log.d("Path:",Environment.getExternalStorageDirectory()+"DCIM/IMG_20140210_130057.jpg");