【问题标题】:Storing image as a blob in filesystem将图像作为 blob 存储在文件系统中
【发布时间】:2014-04-30 01:42:53
【问题描述】:

我一直将图像存储在数据库中的 blob 字段中,但由于性能不佳和 1MB 游标限制,我决定切换到文件系统。我担心几件事。我在哪里专门存储图像?只需创建一个文件夹并将它们放入其中?使用文件浏览器的用户可以看到吗?我很担心,因为如果要从用户中删除它们,我可能会失去对所有这些的引用。

【问题讨论】:

    标签: android file sqlite blob


    【解决方案1】:

    可以使用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();
    

    Storage Options

    【讨论】:

      【解决方案2】:

      是的,该文件夹将对用户可见。但是,如果您担心用户可以删除该文件夹而不是隐藏该文件夹。要隐藏文件夹,请以 dot(.) 开头的文件夹名称。

      【讨论】:

      • 不是,不一定。 /data/data 中的文件夹是应用程序私有的。
      猜你喜欢
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 2010-09-16
      • 2015-10-16
      • 2010-11-15
      • 2014-05-04
      相关资源
      最近更新 更多