Android 存儲到SD卡,獲取SD的大小及可用空間


    使用Sdcard注意事項:

    1.權限問題:    
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    2.硬性編碼問題:通過 Environment可以獲取sdcard的路徑
         Environment.getExternalStorageDirectory().getPath();
    3.使用前需要判斷sdcard狀態
            if(!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)){
                    //sdcard狀態是沒有掛載的情況
                    Toast.makeText(mContext, "sdcard不存在或未掛載", Toast.LENGTH_SHORT).show();
                    return ;
                }
    4.需要判斷sdcard剩余空間
                    //判斷sdcard存儲空間是否滿足文件的存儲
                File sdcard_filedir = Environment.getExternalStorageDirectory();//得到sdcard的目錄作為一個文件對象
                long usableSpace = sdcard_filedir.getUsableSpace();//獲取文件目錄對象剩余空間
                long totalSpace = sdcard_filedir.getTotalSpace();
                //將一個long類型的文件大小格式化成用戶可以看懂的M,G字符串
                String usableSpace_str = Formatter.formatFileSize(mContext, usableSpace);
                String totalSpace_str = Formatter.formatFileSize(mContext, totalSpace);
                if(usableSpace < 1024 * 1024 * 200){//判斷剩余空間是否小於200M
                    Toast.makeText(mContext, "sdcard剩余空間不足,無法滿足下載;剩余空間為:"+usableSpace_str, Toast.LENGTH_SHORT).show();
                    return ;    
                }


        /data/data: context.getFileDir().getPath();
        是一個應用程序的私有目錄,只有當前應用程序有權限訪問讀寫,其他應用無權限訪問。一些安全性要求比較高的數據存放在該目錄,一般用來存放size比較小的數據。


        /sdcard:  Enviroment.getExternalStorageDirectory().getPath();
        是一個外部存儲目錄,只用應用聲明了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>的一個權限,就可以訪問讀寫sdcard目錄;所以一般用來存放一些安全性不高的數據,文件size比較大的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM