android - 如何在 Android 中获取内存文件的 FileInputStream?该文件位于我在应用程序空间中创建的自定义文件夹中

标签 android file memory internal

如何获取 Android 内部存储器中不在应用程序默认文件目录中的文件的 FileInputStream。

我已经在我的应用程序空间中创建了新目录。所以 openFileInput("filename") 仅适用于 getFilesDir() 中的文件。并且 openFileInput("filename") 不接受带有路径分隔符“/”的参数,因此我可以将其更改为 ../myfolder/。

有什么办法可以得到 FileInputStream 吗? ..

注意:使用普通 API File = new File(...) 会产生权限被拒绝的错误。我已经创建了给定的 Context.MODE_WORLD_WRITEABLE 作为我的自定义文件夹的权限。

为了清楚起见: 我的文件在这里 ==> /data/data/com.app.package/app_myfolder/file1.tmp 在哪里 "myfolder"==> 是使用 Context.MODE_WORLD_WRITEABLE 权限创建的。

我想在 file1.tmp 上打开 FileInputStream。 (通常你的文件在这里 /data/data/com.app.package/files/file1.tmpgetFilesDir() 指向这个目录,所以 openFileInput("") 采用存在于同一默认目录中的参数。)

最佳答案

How to get FileInputStream for file in internal memory in android which is not inside applications default file directory.

你不能,除非有问题的文件是使用 openFileOutput()MODE_WORLD_READABLE 创建的,这不是一个好主意(因为现在任何应用程序都可以读取那个文件)。

As the file was created by camera activity as a result for startActivityForResult() for MediaStore.ACTION_IMAGE_CAPTURE intent.

相机 Activity 应该将文件存储在外部存储设备上,而不是内部存储设备。使用 EXTRA_OUTPUT extra 指示文件应该去哪里。

So is there any way I can change this permissions ?

假设“相机 Activity ”指的是 Android 固件中的相机 Activity ,您将需要修改固件。

关于android - 如何在 Android 中获取内存文件的 FileInputStream?该文件位于我在应用程序空间中创建的自定义文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4655003/

相关文章:

Android - 在横向和纵向模式之间切换使 Intent 失去值(value)

file - Phonegap : Create a file in a specific folder

eclipse - 如何从 Eclipse 中的文件搜索中排除 .class 文件?

连接 DWORD

c++ - gcc 需要大量内存来编译堆栈上非常大的对象的 c++ 文件

c++ - C++中的字符串 vector 消耗的内存

android - 如何将颜色保存到sqlite数据库

android - 使用 ProGuard 删除日志不会删除正在记录的字符串

android - 是否可以使用 Retrofit 2 连续向同一端点发出 2 个不同的 POST 请求?

android - 数据持久化安卓