【问题标题】:Best place to store custom files in Internal Storage在内部存储中存储自定义文件的最佳位置
【发布时间】:2016-11-17 02:36:48
【问题描述】:

我有一个想要访问的自定义数据库和文件。目前正在将其保存在根目录的文件夹中,但日志显示我没有这样做的权限。

我不想将文件保存在应用资产文件夹中。将文件保存在内部存储中的最佳位置是什么?

【问题讨论】:

  • 存储在getExternalFilesDir()

标签: android file


【解决方案1】:

在内部存储/sdcard 中创建名称以 (.) 开头的数据库。您还可以使用 (.) 作为首字母创建文件夹并将您的数据库文件放入其中。这将被隐藏。

【讨论】:

    【解决方案2】:

    您应该在 AndroidManifest.xml 中添加权限

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    

    【讨论】:

    • 为什么是READ_PHONE_STATE
    【解决方案3】:

    试试这个。 Context.getExternalCacheDir()Context.getExternalFilesDir() 文件将存储在SDCard/Android/data/data/&lt;application package&gt;/cacheSDCard/Android/data/data/&lt;application package&gt;/files
    您应该在 AndroidManifest.xml 中添加权限
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    但不需要 Android 6.0 运行时权限。

    对于内部存储,您可以使用 Context.getCacheDir() 或 Context.getFilesDir()。文件将保存在 data/data/&lt;application package&gt;/cachedata/data/&lt;application package&gt;/files。对于这个地方你不需要声明权限。

    我认为你的数据库文件存放在默认位置是最好的。data/data/&lt;application package&gt;/database

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多