1. 程式人生 > >Android獲取儲存空間的使用情況

Android獲取儲存空間的使用情況

android.os下的StatFs類主要用來獲取檔案系統的狀態,能夠獲取sd卡的大小和剩餘空間,獲取系統內部空間也就是/system的大小和剩餘空間等等。
      看下讀取sd卡的:
Java程式碼
void readSDCard() { 
        String state = Environment.getExternalStorageState(); 
        if(Environment.MEDIA_MOUNTED.equals(state)) { 
            File sdcardDir = Environment.getExternalStorageDirectory(); 

            StatFs sf = new StatFs(sdcardDir.getPath()); 
            long blockSize = sf.getBlockSize(); 
            long blockCount = sf.getBlockCount(); 
            long availCount = sf.getAvailableBlocks(); 
            Log.d("", "block大小:"+ blockSize+",block數目:"+ blockCount+",總大小:"+blockSize*blockCount/1024+"KB"); 

            Log.d("", "可用的block數目::"+ availCount+",剩餘空間:"+ availCount*blockSize/1024+"KB"); 
        }    
    } 
       然後看下讀取系統內部空間的:
Java程式碼
void readSystem() { 
        File root = Environment.getRootDirectory(); 
        StatFs sf = new StatFs(root.getPath()); 
        long blockSize = sf.getBlockSize(); 

        long blockCount = sf.getBlockCount(); 
        long availCount = sf.getAvailableBlocks(); 
        Log.d("", "block大小:"+ blockSize+",block數目:"+ blockCount+",總大小:"+blockSize*blockCount/1024+"KB"); 
        Log.d("", "可用的block數目::"+ availCount+",可用大小:"+ availCount*blockSize/1024+"KB"); 
    } 
       StatFs獲取的都是以block為單位的,這裡我解釋一下block的概念:
1.硬體上的 block size, 應該是"sector size",linux的扇區大小是512byte
2.有檔案系統的分割槽的block size, 是"block size",大小不一,可以用工具檢視
3.沒有檔案系統的分割槽的block size,也叫“block size”,大小指的是1024 byte
4.Kernel buffer cache 的block size, 就是"block size",大部分PC是1024
5.磁碟分割槽的"cylinder size",用fdisk 可以檢視。
      我們這裡的block size是第二種情況,一般SD卡都是fat32的檔案系統,block size是4096.
      這樣就可以知道手機的內部儲存空間和sd卡儲存空間的總大小和可用大小了。

相關推薦

Android獲取儲存空間的使用情況

android.os下的StatFs類主要用來獲取檔案系統的狀態,能夠獲取sd卡的大小和剩餘空間,獲取系統內部空間也就是/system的大小和剩餘空間等等。      看下讀取sd卡的:Java程式碼void readSDCard() {         String st

android 獲取儲存空間大小

android手機上面的儲存空間主要有手機本身的儲存空間和SD卡的儲存空間。之前用的最多的是SD卡的儲存空間,在總結的時候看了一下系統的原始碼,很有收穫。在手機安裝應用時,系統會自動在/data/data目錄下面以應用的主包名建立一個目錄,預設還會在最後的那個目錄裡面

Android獲取儲存資訊

5.1和6.0以上獲取SD卡和USB(OTG)儲存大小: 要獲取儲存裝置的儲存大小,先需要獲取裝置的路徑,我這裡的裝置SD卡都只有一張,固定為/mnt/external_sd,USB口可能有多個,網上說的一般是/mnt/usb_storage,但我找個幾個5.1的平板都獲取不到,最後通過adb

Android獲取儲存裝置掛載路徑

Environment.getExternalStorageDirectory()是Android 2.x時代的產物,那時Android主流裝置只有很小的內建儲存器,然後都會外接一張sd卡,那時這個方法返回的就是外接sd卡的根路徑。 但隨著Android進入4

iOS獲取儲存空間大小(總共/剩餘)

/// 總大小 float totalsize = 0.0; /// 剩餘大小 float freesize = 0.0; /// 是否登入 NSError *error = nil; NSArray *path

android獲取手機內部儲存空間和外部儲存空間

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android 獲取手機儲存總大小,系統佔用空間

一、Android 儲存介紹及通常查詢大小 手機儲存有兩種,內建記憶體和外接記憶體(SD),目前可擴充套件記憶體的機型正在減少,大部分是內建儲存的手機,內建128G、256G已經很常見,但如果有擴充套件功能的話,買個乞丐版+SD卡也是美滋滋,畢竟廠家增加儲存空間後手機定價也不便宜。言

android獲取有效可用儲存空間大小

/** * 獲取有效可用空間大小,單位byte * @param path * @return */ @SuppressLint("NewApi") private long getAvailableBytesByPath(String path) {

Android獲取SD卡及內部儲存空間總大小和可用大小

android.os下的StatFs類主要用來獲取檔案系統的狀態,能夠獲取sd卡的大小和剩餘空間,獲取系統內部空間也就是/system的大小和剩餘空間等等。 看下讀取sd卡的: void readSDCard() { String

Android獲取外部和內部儲存空間總大小

  android.os下的StatFs類主要用來獲取檔案系統的狀態,能夠獲取sd卡的大小和剩餘空間,獲取系統內部空間也就是/system的大小和剩餘空間等等。       看下讀取sd卡的: Java程式碼 void  readSDCard() {        

Android獲取外部和內部儲存空間總大小和可用大小

android.os下的StatFs類主要用來獲取檔案系統的狀態,能夠獲取sd卡的大小和剩餘空間,獲取系統內部空間也就是/system的大小和剩餘空間等等。       看下讀取sd卡的: Java程式碼   void readSDCard() {       

C# 根據磁碟碟符獲取磁碟儲存空間

本章講述:根據磁碟碟符獲取磁碟總的儲存容量和可用儲存容量; /// 獲取指定驅動器的空間總大小(單位為B) /// </summary> /// <param name="str_HardDiskName">只需輸入代表驅動器的字母即可 </param>

Android 本地儲存之外部儲存/內部儲存路徑獲取大全

//:/system String rootDir = Environment.getRootDirectory().toString(); System.out.println("Environment.getRootDirectory()=:" +

Android 獲取手機儲存資訊詳解(記憶體,外存等)

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); //系統記憶體資訊 ActivityManager.MemoryInfo memInfo = new ActivityManager

Android 內建儲存空間的操作。

1,開發中遇到沒有內建SDK的情況。之前沒搞過,今天搞了一下午。終於找到原因了,特此記下來。 首先感謝這位:http://aijiawang-126-com.iteye.com/blog/792931 我的網路請求用的是OKGO。 直接貼程式碼 /** * APP下

Android 動態獲取儲存、位置、電話的許可權(附程式碼)

       今天客戶提出上傳資訊時需攜帶經緯度,且需要兩種獲取位置的方式;故經思考使用了GPS和網路獲取位置,但在經過實地測試的時候才發現沒寫獲取許可權。       便在登入介面加上獲取許可權程式碼,此次獲取的是儲存、位置

android獲取assets內容複製到本地儲存

新建的專案,一定要記得新增讀寫檔案的許可權啊,不然沒有效果的,你不加許可權,沒有效果請不要找我 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  

儲存空間滿了,如何刪除下載的android 模擬器

背景:因為d盤快滿了,不得不清理磁碟 android 模擬器佔用空間非常大,達到10多G。對我這個磁碟只有240GB的固態硬碟,實在是有點傷。 大家都知道模擬器是安裝在sdk目錄的。如果不清楚sdk目錄結構的,可以開啟下面連線檢視。 system-images:系統

【Tricks】 Android 儲存空間相關

1. 填滿儲存儲存空間方法: 1.1 填滿手機空間 在mnt/sdcard目錄下建立一個檔案,並且快速增長,填充滿手機內部儲存空間 adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile 寫完後: 1.2 或者指定填充大小:

mono for android 獲取手機照片或拍照並裁剪儲存

using System; using Android.App; using Android.Content; using Android.Widget; using Android.OS; using Android.Graphics; using System.IO; names