Я не уверен, что это всегда вернет оптимальный номер, но вызов Win32 GetDiskFreeSpace
возвращает, среди прочего, lpBytesPerSector
и lpSectorsPerCluster
;умножьте их, чтобы получить количество байтов на кластер, которое (возможно) является разумным значением для использования в качестве размера буфера.
Этот вызов не применяется к файлам, а скорее к файловым системам, поэтому вам придется вычислитькакой корень файл живет до его использования.