出于写入目的,访问Android应用程序内部存储中的子目录

时间:2018-06-25 18:29:20

标签: android fileoutputstream android-internal-storage

我已经在应用程序的内部存储中创建了一个images子目录。因此,完整路径是

/data/data/{app_namespace}/images

现在,我已经成功创建了一个用于存储图像的uri /data/data/{app_namespace}/images/enh.jpeg

但是,当我想打开文件进行写入时,在分别使用的两种方法中,我面临两个问题:

  1. FileOutputStream out = new FileOutputStream( uri_path):没有此类文件或目录。
  2. FileOutputStream out = context.openFileOutput(uri_path, Context.MODE_PRIVATE):文件包含路径分隔符。

我想了解如何打开/data/data/{app_namespace}/images/enh.jpeg进行写作?还有我不知道的其他方式吗?

1 个答案:

答案 0 :(得分:-1)

我发现了问题。实际上,我正在按以下方式构造uri_path变量

uri_path = uri.getPath()

这仅返回/images/enh.jpeg,因为前一部分在authority的{​​{1}}字段中进行了编码。关于如何从uri中提取绝对路径,Internet上的其他地方有多种解决方案,为简洁起见,在此将其省略。