Я думаю, вам нужно сопоставить все файлы, запросить с помощью GetFileSize () и GetCompressedFileSize () и суммировать их. Используйте GetFileAttributes () , чтобы узнать, сжат ли файл или нет, если сжимаются только части всего тома, что, безусловно, может иметь место.
Хм, так что это не тривиально
операция. Я полагаю, я должен реализовать
какой-то механизм, чтобы избежать запросов всех
размер файлов все время. Я имею в виду ... если
У меня есть жесткий диск 800 ГБ, это может
займет очень много времени, чтобы получить все
размер файла.
Правда.
Возможно, начните с полного сканирования (запуска приложения) и заполните свою пользовательскую структуру данных, например, хэш / сопоставление от имени файла до структуры / класса данных файла, затем опросите диск с помощью FindFirstChangeNotification () и соответственно обновите внутреннюю структуру.
Возможно, вы также захотите прочитать о «Изменение журналов». Я никогда не использовал их сам, поэтому не знаю, как они работают, но, возможно, стоит проверить.