2009-07-02 24 views
9

Kullanıcı sabit diskinin küme boyutunu C veya C++ ile bulmalıyım. Sabit disk NTFS kullanır (ancak diğer dosya sistemlerinde nasıl yapıldığını bilmek isterim).Sabit sürücünün küme boyutunu alma (kod aracılığıyla)

İhtiyacım olan şey Win32 API çağrılarının bazı birleşimi, ama hangisi olduğunu bilmiyorum. Örneğin, Windows konsolunda "fsutil fsinfo ntfsinfo c:" yazarak size ihtiyacım olan "Küme başına bayt" yazabilirsiniz. (Bilinen nedenlerle, bunu komutunu çalıştırın ve çıkış var ayrıştırmak istemiyorum rağmen.)

+0

bu size bir sürü söylemez unutmayın. Küçük dosyalar dizin düğümünün kendisinde saklanabilir. – MSalters

+0

FWIW, bir dosya sisteminin küme büyüklüğüne bazen "tahsis birimi" büyüklüğü olarak da değinilmektedir, örneğin: http://msdn.microsoft.com/en-us/library/aa383356(VS.85).aspx. – reuben

cevap

14

Kullanım GetDiskFreeSpace

BOOL WINAPI GetDiskFreeSpace(
    __in LPCTSTR lpRootPathName, 
    __out LPDWORD lpSectorsPerCluster, // <-- 
    __out LPDWORD lpBytesPerSector, // <-- 
    __out LPDWORD lpNumberOfFreeClusters, 
    __out LPDWORD lpTotalNumberOfClusters 
); 
İlgili konular