怎么獲取指定目錄的大小﹖(13分)

  • 主题发起人 主题发起人 fancy105
  • 开始时间 开始时间
F

fancy105

Unregistered / Unconfirmed
GUEST, unregistred user!
指定一個目錄﹐怎么知道它的大小﹐只有將其下的文件一個個加總嗎﹐
有沒有更快的方法。只有13分了﹗
 
没有其他办法,只能一个一个加
 
那讀文件的大小有沒有辦法﹐我不太會用api。
特別是GetFileSize和SHGetFileInfo比較難用。
 
你可以用getfilesize获得目录的大小。不过,在GetFileSize(
; ; HANDLE hFile, // handle of file to get size of
; ; LPDWORD lpFileSizeHigh // address of high-order word for file size
; ;);中的handle必须为路径的handle.
 
麻煩就在這個Handle﹐在delphi我只想到OpenFile返回這個值﹐
是不是沒有必要﹐有沒有其它的辦法﹖
 
我觉得好象只有 Win2000 才支持打开路径(目录)的 Handle
反正我在 9x 下没有成功过,但看见帮助上写的 NT/2k 能用
但我没有 2k, 所以没有试
 
我也沒有win2k呀﹐any more?
 
You can try this procedure:

procedure GetFolderSize (const Path: String; ;var TotalBytes: Integer;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;var TotalFiles: Integer);
var
; ; SearchRec : TSearchRec;
; ; ReturnCode: Integer;
begin
; TotalBytes := 0;
; TotalFiles := 0;

; ReturnCode := SysUtils.FindFirst(Path + '/*.*',
; ; ; ; ; ; ; ; ; faAnyFile, SearchRec);
; while ReturnCode = 0 DO
; begin
; ; ig ;(SearchRec.Name <> '.') AND
; ; ; ; (SearchRec.Name <> '..') AND
; ; ; ; (SearchRec.Attr <> faDirectory)
; ; then begin
; ; ; TotalBytes := TotalBytes + SearchRec.Size;
; ; ; TotalFiles := TotalFiles + 1;
; ; end;
; ; ReturnCode := SysUtils.FindNext(SearchRec);
; end;
; SysUtils.FindClose(SearchRec)
end;
 
只能加總目錄中的文件的大小還不夠, 還要包括目錄中的目錄的文件,遞歸!
 
多人接受答案了。
 

Similar threads

后退
顶部