任務:寫個方法,我會給你個路徑,計算這個路徑所占用的磁碟空間 。
然後,找了很多資料。但大部分都是獲取資料夾/檔案的大小的。對於占用空間的沒有成品**。(ps:我沒找到。)後來,在網上找了些資料,自己搗鼓出來了。在這裡記錄下,一則說不定以後能用到。再則如果有高手有更好的方法或者建議,求指點。
廢話不多說了。begin。
首先說下資料夾/檔案大小與占用空間的區別。
那麼問題來了。怎樣獲取本機的簇有多少位元組呢?
首先通過windows api獲取磁碟的相關資訊。
//呼叫windows api獲取磁碟空閒空間
//導入庫
[dllimport("kernel32.dll", charset = charset.auto)]
static extern bool getdiskfreespace([marshalas(unmanagedtype.lptstr)]string rootpathname,
ref int sectorspercluster, ref int bytespersector, ref int numberoffreeclusters, ref int totalnumbeofclusters);
下面是具體**。第一次寫文章就簡單點了。
///
/// 獲取指定路徑的大小
///
/// 路徑
///
public static long getdirectorylength(string dirpath)
else
//獲取di中所有的資料夾,並存到乙個新的物件陣列中,以進行遞迴
directoryinfo dis = di.getdirectories();
if (dis.length > 0)}}
return len;
}///
/// 獲取指定路徑的占用空間
///
/// 路徑
///
public static long getdirectoryspace(string dirpath)
else
else
}//獲取di中所有的資料夾,並存到乙個新的物件陣列中,以進行遞迴
directoryinfo dis = di.getdirectories();
if (dis.length > 0)}}
return len;
}//所給路徑中所對應的檔案大小
public static long filesize(string filepath)
//所給路徑中所對應的檔案占用空間
public static long filespace(string filepath)
else
return temp;
}public static diskinfo getdiskinfo(string rootpathname)
/// 結構。硬碟資訊
///
public struct diskinfo
///
/// 獲取每簇的位元組
///
/// 指定檔案
///
public static long getclustersize(fileinfo file)
///
/// 獲取每簇的位元組
///
/// 指定目錄
///
public static long getclustersize(directoryinfo dir)
C 獲取資料夾大小
當然了都需要引入system.io這個命名空間 第乙個 public static long getdirectorylength string dirpath 獲取di中所有的資料夾,並存到乙個新的物件陣列中,以進行遞迴 directoryinfo dis di.getdirectories if...
Linux C 獲取資料夾大小
方法可行,執行正確。拿到我們的專案中,卻遇到一些問題 程式中一些讀檔案的 開始報異常,都不到檔案。這些都是以前沒有遇到過的問題。到底是什麼情況呢?排查了好久,終於發現使用該文章提供的計算資料夾大小的函式 暫且叫做getdirectorysize 其中有改變當前目錄的 chdir dir 我們的專案是...
python獲取檔案及資料夾大小
1.獲取檔案大小 使用os.path.getsize函式,引數是檔案的路徑。2.獲取資料夾大小,即遍歷資料夾,將所有檔案大小加和。遍歷資料夾使用os.walk函式 import os from os.path import join,getsize def getdirsize dir size 0...