【发布时间】:2014-01-24 06:55:11
【问题描述】:
我有一个要求,文件和文件夹需要使用Context.MODE_PRIVATE 以嵌套结构写入。
我发现我们可以使用openFileOutput(FILENAME, Context.MODE_PRIVATE);创建文件,并且能够使用这种方法创建文件。但是后来我发现使用这种方法我无法创建嵌套文件结构,即for
openFileOutput("foo/myText.txt", Context.MODE_PRIVATE);
抛出异常:
java.lang.IllegalArgumentException: File foo/myText.txt contains a path separator
可能是因为它只需要一个 fileName & not a filepath 并且文档说
打开与此上下文的应用程序包关联的私有文件 写作。
然后我发现getFilesDir()返回了Context的应用程序包,我可以使用普通的Java File I/O创建文件。但是我不知道它是在什么权限下创建的,即它是否是MODE_APPEND,@ 987654328@,MODE_WORLD_READABLE 或MODE_WORLD_WRITEABLE。
所以,我有以下问题:-
如何使用 MODE_PRIVATE 下的 openFileOutput() 方法创建嵌套文件结构(如果可能)?
如果 openFileOutput() 不适用于创建嵌套结构,那么使用
getFilesDir()和 Java File I/O 组合来满足我的要求是否安全?用这种方式创建的文件有什么权限?
【问题讨论】: