【问题标题】:FileOutputStream file shown Writable = falseFileOutputStream 文件显示 Writable = false
【发布时间】: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


【解决方案1】:

你应该使用

\\...
File myDir = new File(Environment
     .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
\\...

然后检查以确认目录存在,然后继续写入文件。

【讨论】:

  • 它不起作用。此外,Android Studio 说(对于此方法调用),作为隐私政策应用程序无法访问此类文件夹!我尝试在根目录下创建自己的文件夹,即我们的下载、录音、音乐、图片等文件夹所在的位置。仍然 .Writable() 调用说 False!我是否缺少任何权限?
  • 您是否有权写入您的 Android 清单文件中启用的存储空间?
猜你喜欢
  • 2019-03-08
  • 2021-05-30
  • 1970-01-01
  • 2017-07-19
  • 2016-06-09
  • 1970-01-01
  • 2015-10-21
  • 2011-06-23
相关资源
最近更新 更多