当前位置: 首页 > 面试题库 >

createNewFile-打开失败:ENOENT(无此文件或目录)

华子航
2023-03-14
问题内容

我无法弄清楚这里出了什么问题…我试图更简洁地写这篇文章,但没有用。阅读有关此问题的其他建议后,我输入了所有额外的字符串。没有帮助。不知道发生了什么事。可能与权限相关吗?AFAIK我正在尝试写入内部存储器,并且不需要特殊权限?

public void outputBitmap(){ 
    String path = Environment.DIRECTORY_PICTURES.toString();
    File folder = new File(path + "/Blabla");
    String filename = new SimpleDateFormat("yyMMddHHmmss").format(Calendar.getInstance().getTime()) + ".png";
    try {
        if (!folder.exists()) {
            folder.mkdirs();
            System.out.println("Making dirs");
        }
        File myFile = new File(folder.getAbsolutePath(), filename);
        myFile.createNewFile();

        FileOutputStream out = new FileOutputStream(myFile);
        myBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
        out.flush();
        out.close();

    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

每次,目录未完成或出现某种情况时,它都会“制作目录”。当到达myFile.createNewFile();时
它给出错误信息“打开失败:ENOENT(没有这样的文件或目录)”

不确定是否相关,但是我要输出的信息来自:

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    myBitmap = Bitmap.createBitmap(viewWidth, viewHeight, Bitmap.Config.RGB_565);
    Canvas pngCanvas = new Canvas(myBitmap);
    ...[some maths and stuff]
    canvas.drawLine(...);
    pngCanvas.drawLine(...);
}

我以为我应该能够为位图使用相同的画布,但是这导致崩溃,因此我将相同的信息写入两个画布。所以…我不知道这与问题有关还是完全不同的坏问题或什么。

一直在搜寻各种看似相似的问题,但找不到适合我的解决方案。我已经尝试解决这几天了。有人知道怎么了吗?

谢谢


问题答案:

您没有正确使用Environment.DIRECTORY_PICTURES。它本身不是文件夹,您需要将其用作getExternalStoragePublicDirectory()方法的参数。检查此处:http
:
//developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)



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

  • null 我在用这个代码 但我一直得到这个错误

  • 方法总是给出这样的错误: 打开失败:ENOENT(没有这样的文件或目录)

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

  • 问题内容: 由于某种原因,我两次阅读都得到了一个。值得注意的是,Toast会打印“文件存在!”。我使用底部的来测试文件的内容是否正确。 Logcat … 问题答案: 返回一个File对象。如果在其上调用onString(您暗中进行了此操作),它将返回其路径。如果该文件是目录,则该路径 不会 以斜杠结尾,因此将导致类似的内容。 您可以使用,也可以仅致电。

  • 出于某种原因,我在两次阅读中都获得了。值得注意的是Toast会打印“文件存在!”。我使用底部的来测试文件的内容是否正确。 Logcat...