当前位置: 首页 > 知识库问答 >
问题:

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

韩乐湛
2023-03-14
    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(没有这样的文件或目录)

共有1个答案

司寇旺
2023-03-14

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

GetExternalStoragePublicDirectory()的API文档中,代码使用mkdirs确保目录存在:

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

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

...因此,在createtempfile之前,将path.mkdirs()添加到现有代码中就可以了。

 类似资料:
  • null 我在用这个代码 但我一直得到这个错误

  • 我正在尝试编写一个Android应用程序,它将解析一个. owl文件(OWL文件)并显示类和子类。当我尝试打开文件时,我一直得到以下异常。 以下是我的Android代码: 我在项目的父目录中有文件“antiminaties.owl”。我正在模拟器上运行这个项目。 我如何摆脱这个异常并解析OWL文件?我仍然是Android编程的初学者。

  • 我在节点Js中工作。当我尝试加载文件时:moviedata.json,如下行: 显示: 错误:ENOENT:没有这样的文件或目录,打开'./moviedata.json'在错误(本机)在Object.fs.open同步(fs.js:640: 18)在Object.fs.readFileSync(fs.js:508: 33)在对象。(/用户/dortiz/文档/NodeJS/pruebas/zw/a

  • 我不知道这里出了什么问题...我试着把这个写得更简洁些,但没有奏效。我在阅读了这个问题的其他建议后加入了所有额外的字符串。帮不上忙。不知道发生了什么。可能是权限相关的吗?AFAIK我正试图写入内存,这不需要特殊的权限? 它每次都是“制造dirs”,目录不是停留在制造,或者其他什么。当它到达myfile.createnewfile()时;它给出错误消息“Open Failed:ENOENT(没有这样

  • 我有一个错误: 警告:require_once(../questionTypes/Question.php):无法打开流:第25行的/home/u949913003/public_html/includes/essential.php中没有此类文件或目录 致命错误:require_once():无法在/home/u949913003/public_html/includes/essential.p

  • 问题内容: 我从节点应用程序收到此错误: 我知道文件在那里,因为当我尝试使用确切的复制和粘贴路径打开文件时,它可以工作。我也知道应用程序使用的是正确的目录,因为它会在错误中输出它。 问题答案: 波浪形扩展是一件空壳的事情。编写正确的路径名(可能是yourusername )或使用