【发布时间】:2021-12-01 19:33:57
【问题描述】:
我正在尝试将位图写入任何常用的内部文件夹,例如“图片、文档、下载”等。下面是我正在创建的文件
String root = Environment.getRootDirectory().toString();
File myDir = new File(root + File.separator + Environment.DIRECTORY_PICTURES);
String Filename = "pic.png";
File fl = new File(myDir + File.separator + Filename);
FileOutputStream out = new FileOutputStream(fl);
在最后一行,它抛出一个异常,上面写着“没有这样的文件/目录”。 如果我检查 fl.canWrite(),它会显示 false!,即 fl 不可写。
我什至尝试在我的测试手机中为此应用程序提供“无限制访问”。
可能是什么问题? 我需要做哪些额外的事情?
编辑:当我敬酒时,myDir 显示为 /system/Pictures。当我在手机中进入文件管理器时,在我的“手机存储”下,有“图片”文件夹。那是 Android 中常用的文件夹吧?
【问题讨论】:
-
你应该检查 myDir.canWrite() 因为那个文件还不存在。
-
所用设备的Android版本?
-
File fl = new File(myDir, Filename);等等就省了一点。 -
@blackapps 是的,这一定是原因。但是如何克服它。怎么做才能让它可写?我预计图片文件夹没有那么多限制!我的手机显示 Android 版本 7.0
-
@JoopEggen,之前是这样的,然后当我遇到这个问题时,我正在检查这个语法。
标签: java android fileoutputstream