опубликован 08-10-2001 21:47 MSK Тут непонятки с функцией GetDiskFreeSpace или GetDiskFreeSpaceEx. Такая вещь - ведь объём диска может быть больше 4гб т.е. это не влезет в стандартный DWORD
и соответственно всё это дело возвращается в структуру типа _ULARGE_INTEGER которая вообще_непонятно_что_из_себя_представляет. Как из этой структуры мне
получить нормальное значение размера - в DWORD оно не влезет... значит куда его сувать? Я в своей проге подсчитываю занятое место при проходе по всем папкам
путём занесения значения размера в double. Ну так каким образом мне получить размер и занести его в тот же double?
Heromantor
опубликован 08-10-2001 23:53 MSK
А разве GetDiskFreeSpace имеет не такое описание???? По моему сюда влезет больше чем 4Гб...
BOOL GetDiskFreeSpace(
LPCTSTR lpRootPathName, // address of root path LPDWORD lpSectorsPerCluster, // address of sectors per cluster LPDWORD lpBytesPerSector, // address of bytes per sector LPDWORD lpNumberOfFreeClusters, // address of number of free clusters LPDWORD lpTotalNumberOfClusters // address of total number of clusters );
Dung
опубликован 09-10-2001 00:27 MSK
Ну а как это всё в нормальный вид привести???
Flex Ferrum
опубликован 09-10-2001 10:16 MSK
Взять все и перемножить: FreeSpace = BytesPerSector * SectorsPerCluster * NumberOfFreeClusters;