将私有文件写入内部存储

3
我正在尝试在内部存储上写一些文件。
我在数据存储中看到了FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);,并且我明白这个文件将只属于我的应用程序。
但问题是它只能打开没有路径的文件,所以我首先用file.mkdir()打开了一个新的目录文件,但现在,如何将文件写为私有?

那为什么你不尝试将它存储在SD卡中呢? - Nikunj Patel
2个回答

8
我看到 Data Storage 中的 FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);,理解为这个文件只能被我的应用程序访问,是吗?
是的,默认情况下它们将是私有的。
但问题在于,它只能打开没有路径的文件。因此,我使用 file.mkdir() 打开了一个新的目录文件,在这种情况下,如何将文件设置为私有?
在 getFilesDir() 的子目录中创建的文件默认都是私有的,您不需要进行任何特殊操作来使它们成为私有文件。

但是根据Android培训文档(https://developer.android.com/training/basics/data-storage/files.html#WriteInternalStorage)的说明 - Dinoop paloli

1
如果您调用Context.openFileOutput(),文件将始终写入您的应用程序数据目录中(即“/data/data/appname/filename”)。您不能在此处使用子文件夹! {{link1:此函数的文档}}说

name要打开的文件的名称;不能包含路径分隔符。


是的,我知道这个。但是@CommonsWare说我在应用程序数据目录中创建的每个目录都将是私有的。所以我使用new File("/data/data/appname/dirname").mkdir()创建了一个文件夹。 - piojo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接