【错误记录】Android 分区存储下的 SD 卡应用专属外部存储空间目录访问 ( 需手动创建应用专属外部存储空间目录 )
生活随笔
收集整理的這篇文章主要介紹了
【错误记录】Android 分区存储下的 SD 卡应用专属外部存储空间目录访问 ( 需手动创建应用专属外部存储空间目录 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、報錯信息
- 二、解決方案
一、報錯信息
開發時 , 需要向外置 SD 卡中拷貝一些文件 , 應用讀取這些文件 , 進行相關配置 ;
但是 Android 系統 , 并不會主動為應用創建文件 , 外置 SD 卡的應用專屬外部存儲空間目錄 , 需要開發者自己創建 ;
當前的包名是 com.example.filepath ;
android {defaultConfig {applicationId "com.example.filepath"} }在 SD 卡根目錄的 Android\data 目錄下 , 并沒有 com.example.filepath 目錄 , 說明 Android 系統并不是自動為每個應用都創建一個應用專屬外部存儲空間目錄 ;
二、解決方案
在應用中 , 獲取 應用專屬外部存儲空間目錄 下的 cache 目錄 , 如果沒有創建該目錄 ;
該目錄的路徑是 /storage/emulated/0/Android/data/com.example.filepath/cache ;
/*** 應用專屬外部存儲空間目錄下的 cache 目錄*/public void generateExternalCacheDir() {// 獲取應用專屬外部存儲空間目錄下的 cache 目錄File cacheFile = getExternalCacheDir();Log.i(TAG, cacheFile.getAbsolutePath());if (!cacheFile.exists()) {// 如果 cache 目錄不存在 , 則創建一系列目錄cacheFile.mkdirs();}}完整代碼如下 :
package com.example.filepath;import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log;import java.io.File;public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);generateExternalCacheDir();}/*** 應用專屬外部存儲空間目錄下的 cache 目錄*/public void generateExternalCacheDir() {// 獲取應用專屬外部存儲空間目錄下的 cache 目錄File cacheFile = getExternalCacheDir();Log.i(TAG, cacheFile.getAbsolutePath());if (!cacheFile.exists()) {// 如果 cache 目錄不存在 , 則創建一系列目錄cacheFile.mkdirs();}} }運行后 , 自動創建該目錄 ;
創建的目錄 ;
總結
以上是生活随笔為你收集整理的【错误记录】Android 分区存储下的 SD 卡应用专属外部存储空间目录访问 ( 需手动创建应用专属外部存储空间目录 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】x86 汇编 (
- 下一篇: 【Android 插件化】DroidPl