如何获取 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.tmp
和 getFilesDir()
指向这个目录,所以 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/