createNewFile - 打开失败:ENOENT(没有此类文件或目录)
我不知道这里出了什么问题...我尝试过更简洁地写这个,但没有奏效。在阅读了有关此问题的其他建议后,我放入了所有额外的字符串。无济于事。不知道发生了什么。它可能与权限相关吗?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();
}
}
它每次都会“制作dirs”,目录不是保持制作,或者其他什么。当它到达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(...);
}
我认为我应该能够对位图使用相同的画布,但这会导致崩溃,所以我将相同的信息写入两个画布。所以。。。我不知道这是否与问题有关,或者是一个完全不同的坏问题,或者是什么。
一直在搜索各种看似相似的问题,但找不到任何适合我的解决方案。几天来,我一直在努力解决这个问题。有人知道出了什么问题吗?
谢谢