Всем привет! Небольшая проблема: необходимо определить процент свободного места на каждом из логических дисков (но процент от свободного места на всех дисках), то есть: <ol type=1> <li> Найти все логические диски (сделано) <li> Найти сумму свободного места на всех дисках <li> Найти процент, деля своб. место одного диска на все своб. место. </ol> Произошел затык на втором пункте. Предполагаю, что надо использовать GetDiskFreeSpaceEx. _1690852959__prog.asm.txt
mix_mix Поясни задачу на числах. Например, есть три диска по 100Gb, на первом свободно - 30Gb, на втором - 60Gb, на третьем - 90Gb. Ответ - 10%, 20% и 30% соответственно?
mix_mix BOOL GetDiskFreeSpace( LPCTSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters ); FreeSpace = NumberOfFreeClusters * SectorsPerCluster * BytesPerSector; Но т.к. тебе достаточно в процентах, то можно считать просто кластеры, а не байты: NumberOfFreeClusters каждого диска*100 /TotalNumberOfClusters всех дисков.
IceStudent Большое спасибо за совет! q_q Поясняю: три диска, объемом по 100 Gb, на на первом свободно - 30Gb, на втором - 60Gb, на третьем - 90Gb. 1. Общее свободное место: 30+60+90=180 Gb 2. Первый диск: 30/180*100=16,6666...=17% 3. Второй диск: 60/180*100=33,3333...=33% 4. Третий диск: 90/180*100=50%