2009-07-02 19 views
9

Necesito encontrar el tamaño del clúster del disco duro de los usuarios, a través de C o C++. El disco duro usa NTFS (aunque apreciaría saber cómo se hace en otros sistemas de archivos también).Obtener el tamaño del clúster de un disco duro (a través del código)

Supongo que lo que necesito es una combinación de llamadas API de win32, pero no sé cuál.

Por ejemplo, escribir "fsutil fsinfo ntfsinfo c:" en la consola de Windows le da "Bytes por clúster", que es lo que necesito. (Aunque por razones obvias, no quiero correr ese comando y analizar su salida.)

+0

Tenga en cuenta que esto no le dice mucho. Los archivos pequeños se pueden almacenar en el nodo del directorio. – MSalters

+0

FWIW, el tamaño del clúster de un sistema de archivos también se conoce como su tamaño de "unidad de asignación", por ejemplo, http://msdn.microsoft.com/en-us/library/aa383356(VS.85).aspx. – reuben

Respuesta

14

Uso del GetDiskFreeSpace

BOOL WINAPI GetDiskFreeSpace(
    __in LPCTSTR lpRootPathName, 
    __out LPDWORD lpSectorsPerCluster, // <-- 
    __out LPDWORD lpBytesPerSector, // <-- 
    __out LPDWORD lpNumberOfFreeClusters, 
    __out LPDWORD lpTotalNumberOfClusters 
); 
Cuestiones relacionadas