我一直在blob字段中存储数据库中的图像,但由于性能差和1MB游标限制,我决定切换到文件系统。我只关心几件事。我应该把图像具体存储在哪里?只是创建一个文件夹然后把它们放进去吗?使用文件浏览器的用户能看到吗?我很担心,因为如果从用户中删除它们,我可能会失去对所有这些的引用。
你可以使用Android的缓存目录,它通常位于/Android/data/YOURPACKAGENAME/cache
使用此代码获取此路径。
final String cachePath =Environment.MEDIA_MOUNTED.equals (Environment.getExternalStorageState ())||! isExternalStorageRemovable () ?getExternalCacheDir(上下文).getPath ():.getPath context.getCacheDir () ();
有效地显示位图看看这个例子由谷歌提供,这是非常有用的,如果你的目标是缓存图像从网络。但是,它对用户是可见的,并且可以很容易地删除。
如果你想对用户隐藏这个文件,你可以简单地保存文件没有任何路径,它将在data/data/YOURPACKAGENAME中,这是对用户隐藏的,直到用户有root访问权限。示例
String FILENAME = "hello_file";String String = "hello world ";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
存储选择是该文件夹将对用户可见。但是,如果您担心用户可以删除该文件夹而不是隐藏该文件夹。