擷取Android手機中SD卡儲存資訊 擷取剩餘空間

來源:互聯網
上載者:User

SD卡作為手機的擴充存放裝置,在手機中充當硬碟角色,可以讓我們手機存放更多的資料以及多媒體等大體積檔案。因此查看SD卡的記憶體就跟我們查看硬碟的剩餘空間一樣,是我們經常操作的一件事,那麼在Android開發中,我們如何能擷取SD卡的記憶體容量呢?

首先,要擷取SD卡上面的資訊,必須先對SD卡有訪問的許可權,因此第一件事就是需要添加訪問擴充裝置的許可權。

<uses-permission 

android:name="android.permission.WRITE_EXTERNAL_STORAGE">

</uses-permission>

其次,需要判斷手機上面SD卡是否插好,如果有SD卡的情況下,我們才可以訪問得到並擷取到它的相關資訊,當然以下這個語句需要用if做判斷。

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

取得sdcard檔案路徑

File path = Environment.getExternalStorageDirectory(); 

StatFs statfs = new StatFs(path.getPath());

擷取block的SIZE

long blocSize = statfs.getBlockSize();

擷取BLOCK數量

long totalBlocks = statfs.getBlockCount();

閒置Block的數量

long availaBlock = statfs.getAvailableBlocks();

計算總空間大小和閒置空間大小

儲存空間大小跟閒置儲存空間大小就被計算出來了。

public long getAvailaleSize(){

File path = Environment.getExternalStorageDirectory(); //取得sdcard檔案路徑

StatFs stat = new StatFs(path.getPath()); 

 

long blockSize = stat.getBlockSize(); 

 

long availableBlocks = stat.getAvailableBlocks();

 

return availableBlocks * blockSize; 

//(availableBlocks * blockSize)/1024      KIB 單位

//(availableBlocks * blockSize)/1024 /1024  MIB單位

 

}

 

 

public long getAllSize(){

File path = Environment.getExternalStorageDirectory(); 

StatFs stat = new StatFs(path.getPath()); 

 

long blockSize = stat.getBlockSize(); 

 

long availableBlocks = stat.getBlockCount();

 

return availableBlocks * blockSize; 

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.