4

如何获取不在应用程序默认文件目录内的 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权限创建的。

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

4

1 回答 1

0

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

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

由于该文件是由相机活动创建的,因此是 MediaStore.ACTION_IMAGE_CAPTURE 意图的 startActivityForResult() 的结果。

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

那么有什么办法可以更改此权限吗?

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

于 2011-01-19T16:20:27.833 回答