错误:打开失败:ENOENT(没有这样的文件或目录)
收藏

我试图创建一个文件来保存相机中的图片,结果我无法创建该文件。 但是我真的找不到错误。您可以看看一下并给我一些建议吗?

private File createImageFile(){
        File imageFile=null;
        String stamp=new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File dir= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        String imageFileName="JPEG_"+stamp+"_";
        try {
            imageFile=File.createTempFile(imageFileName,".jpg",dir);
        } catch (IOException e) {
            Log.d("YJW",e.getMessage());
        }
        return  imageFile;
    }

我已经添加了权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

该方法总是会出现这样的错误:

打开失败:ENOENT(没有这样的文件或目录)

最佳答案

图片目录可能还不存在。它不能保证在那里。

In the API documentation for getExternalStoragePublicDirectory(), the code ensures the directory exists using mkdirs:

File path = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES);
File file = new File(path, "DemoPicture.jpg");

try {
    // Make sure the Pictures directory exists.
    path.mkdirs(); 

...so it may be as simple as adding that path.mkdirs() to your existing code before you createTempFile.

    公众号
    关注公众号订阅更多技术干货!