如何获得一个磁盘的可用空间(200分)

P

ptcn

Unregistered / Unconfirmed
GUEST, unregistred user!
一个从WINDOWS下移植过来的服务,准备把分配给它的磁盘挂在制定目录下.
问题是:怎样获得这些目录名和可用的空间?
谢谢大家,本人没有linux下编程经验:)
 
得到目录大小
uses ShellApi
function GetDirectorySize(Path: String): Integer;
//eg. Path = 'c:/temp/'
var
SR: TSearchRec;
begin
Result := 0;
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr = faDirectory) then
Result := Result + GetDirectorySize(Path+Sr.Name+'/')
else
Result := Result + Sr.Size;
while FindNext(sr) = 0do
if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr = faDirectory) then
Result := Result + GetdirectorySize(Path+Sr.Name+'/')
else
Result := Result + Sr.Size;
FindClose(sr);
end;
end;

得到磁盘的剩余空间:
BOOL GetDiskFreeSpace(
LPCTSTR lpRootPathName, // root path
LPDWORD lpSectorsPerCluster, // sectors per cluster
LPDWORD lpBytesPerSector, // bytes per sector
LPDWORD lpNumberOfFreeClusters, // free clusters
LPDWORD lpTotalNumberOfClusters // total clusters
);
只需要把lpSectorsPerCluster和lpBytesPerSector和lpNumberOfFreeClusters三个乘起来
就行了,得到的是字节数。
 
二楼正确
 
老大,是在linux下啊,不是WINDOWS.
 
linux下可以这样吗?
 
大家先把分类看清楚了吧。
 
顶部