Parsi Coders
گرفتن سایز یک فایل روی هارد دیسک - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37)
+--- انجمن: Pascal/Delphi (http://parsicoders.com/forumdisplay.php?fid=45)
+---- انجمن: Delphi (http://parsicoders.com/forumdisplay.php?fid=69)
+---- موضوع: گرفتن سایز یک فایل روی هارد دیسک (/showthread.php?tid=580)



گرفتن سایز یک فایل روی هارد دیسک - Amin_Mansouri - 08-01-2011

Get SIZE FiLE Delphi
کد:
function GetFileSizeOnDisk(const FileName: TFileName): Cardinal;
var
spc,bps,nofc,tnoc : Cardinal;
ClusterSize,
ClustersCount,
FileSize : Cardinal;
begin
Result := 0;
if not FileExists(FileName) then
Exit;
//Call GetDiskFreeSpace to find out disk cluster size.
if not GetDiskFreeSpace(PAnsiChar(ExtractFileDrive(FileNa me)),spc,bps,nofc,tnoc) then
Exit;
//Cluster size = Bytes Per Sector * Sectors Per Cluster
ClusterSize := bps * spc;
//Get actual file size.
FileSize := GetCompressedFileSize(PAnsiChar(FileName),nil);
ClustersCount := FileSize div ClusterSize;
//Calculate file size on the disk.
Result := ClustersCount * ClusterSize;
//if the file occupies a cluster partially, add cluster size to file size, because
//a cluster is the smallest unit of disk which is accesible.
if FileSize > Result then
Inc(Result,ClusterSize);
end;
منبع mt88