home *** CD-ROM | disk | FTP | other *** search
- program clstrsze;
- uses dos;
-
- function bytesPerCluster(drive : byte) : integer;
- var
- regs : registers;
- sectorsPerCluster, bytesPerSector : integer;
- begin
- regs.ah := $1c; regs.dl := drive;
- MSdos (regs);
- sectorsPerCluster := regs.al; bytesPerSector := regs.cx;
- bytesPerCluster := sectorsPerCluster * BytesPerSector;
- end;
-
- function dir_size (clusSize : Integer) : Longint;
- var
- FileInfo: SearchRec;
- numClusters : integer;
- begin
- numClusters := 0;
- FindFirst('*.exe', Archive, FileInfo);
- while DosError = 0 do begin
- if ((FileInfo.Size mod clusSize) <> 0) then
- numClusters := numClusters + (FileInfo.Size div clusSize) + 1
- else
- numClusters := numClusters + (FileInfo.Size div clusSize);
- FindNext(FileInfo);
- dir_Size := numClusters * clusSize;
- end;
- end;
-
- var
- disk : byte;
- diskLetter : char;
- clusterSize: integer;
-
- { MAIN } begin
- diskLetter := 'E'; clusterSize := 1024;
- disk := ord(diskLetter)-64;
- writeln(dir_size(BytesPerCluster(disk)));
- end.
-