C 獲取資料夾 檔案的大小以及占用空間

2021-06-22 19:43:18 字數 1766 閱讀 5729

任務:寫個方法,我會給你個路徑,計算這個路徑所占用的磁碟空間 。

然後,找了很多資料。但大部分都是獲取資料夾/檔案的大小的。對於占用空間的沒有成品**。(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...