【发布时间】:2014-04-30 01:42:53
【问题描述】:
我一直将图像存储在数据库中的 blob 字段中,但由于性能不佳和 1MB 游标限制,我决定切换到文件系统。我担心几件事。我在哪里专门存储图像?只需创建一个文件夹并将它们放入其中?使用文件浏览器的用户可以看到吗?我很担心,因为如果要从用户中删除它们,我可能会失去对所有这些的引用。
【问题讨论】:
我一直将图像存储在数据库中的 blob 字段中,但由于性能不佳和 1MB 游标限制,我决定切换到文件系统。我担心几件事。我在哪里专门存储图像?只需创建一个文件夹并将它们放入其中?使用文件浏览器的用户可以看到吗?我很担心,因为如果要从用户中删除它们,我可能会失去对所有这些的引用。
【问题讨论】:
可以使用Android的缓存目录,一般位于/Android/data/YOURPACKAGENAME/cache
使用此代码获取此路径。
最终字符串缓存路径 = Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) || !isExternalStorageRemovable() ? getExternalCacheDir(context).getPath() : context.getCacheDir().getPath();
Displaying Bitmaps Efficiently 查看 Google 提供的这个示例,如果您的目标是缓存来自网络的图像,它非常有用。但是它对用户是可见的并且可以很容易地删除。
如果你想对用户隐藏这些文件,你可以简单地保存没有任何路径的文件,它将在 data/data/YOURPACKAGENAME 中,在用户拥有 root 访问权限之前对用户隐藏。 示例
字符串文件名 = "hello_file"; String string = "你好世界!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
【讨论】:
是的,该文件夹将对用户可见。但是,如果您担心用户可以删除该文件夹而不是隐藏该文件夹。要隐藏文件夹,请以 dot(.) 开头的文件夹名称。
【讨论】: