Android獲取SD卡路徑/內存的幾種方法

Android獲取SD卡路徑/內存的幾種方法
Android獲取SD卡路徑

本篇將會帶領大家學習如何獲取android路徑的幾種常見用法,但在我開始bb之前需要大家清楚android中內存和外存之間的區別,下面進行簡短介紹:
android中的內存:保存在內存中的程序和文件是相互關聯的,什麼意思呢?舉個例子,假設你android手機內存中有一個程序叫bb,然後由bb程序創建了一份名叫cc的文件,當你刪除bb的時候cc也會應爲關聯而被刪除。
像是Shared Preferences或SQLite的內容就是保存到內存儲中的,這些保存的內容會隨程序的刪除而刪除用過的同學因該很快能理解。

android中的外存:我們平常在android手機使用的最多的就是外部存儲,像是你用相機拍了一張照片,這些一般都是保存到外存中的,這些文件不會因爲你刪除了程序而不見。

隨着android版本的增加一般所謂的sd卡(外存儲卡)都變成內置的了

下面正式開始介紹,先是獲取SD卡根目錄的方法:

添加權限:



1
2
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

    //爲真則SD卡已裝入,
    sdCardExist=Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);

}

if(sdCardExist)
{

sdDir = Environment.getExternalStorageDirectory();//獲取跟目錄
//查找SD卡根路徑
sdDir.toString();
Log.e("main","得到的根目錄路徑:"+sdDir);

}

打印Log:

博主打開手機文件管理器首先來到的所在頁面就是這個路徑,只是手機上不會顯示這個路徑

另外一個更靈活的獲取外部路徑的方法:

    File directory_doc = Environment.getExternalStoragePublicDirectory(Environment. DIRECTORY_DOCUMENTS);
    //使用這個方法需要傳入公共目錄的類型如Environment.DIRECTORY_DOCUMENTS
    //查看公共目錄文檔文件的路徑
    Log.e("main","得到的公共目錄:"+directory_doc);

獲取路徑的其他方法;

方法 描述
DIRECTORY_DOCUMENTS 標準文件目錄,可以是用戶自定義創建的。Standard directory in which to place documents that have been created by the user.
DIRECTORY_DOWNLOADS 下載目錄. Standard directory in which to place files that have been downloaded by the user.
DIRECTORY_MOVIES 影視目錄.Standard directory in which to place movies that are available to the user.
DIRECTORY_MUSIC 音樂目錄.Standard directory in which to place any audio files that should be in the regular list of music for the user.
DIRECTORY_PICTURES 用戶可以獲得的圖片目錄.Standard directory in which to place pictures that are available to the user.
更多內容:https://developer.android.com/reference/android/os/Environment

當你有多個外部存儲卡:

    File[] files;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        files = getExternalFilesDirs(Environment.MEDIA_MOUNTED);
        for(File file:files){
            Log.e("main", "得到的全部外存:" +String.valueOf(file));

//便歷所有外部存儲

        }
    }

這裏由於博主手機只有一個sd卡,所以只打印了一行路徑
1
2

得到內存:

File internal=getFilesDir();

  Log.e("main","內存路徑:"+internal);

1
2

如有錯誤歡迎糾正

作者:Kerwinoyyx
來源:CSDN
原文:https://blog.csdn.net/Kerwinoyyx/article/details/91401291
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章