2009-07-02 40 views
9

Tôi cần phải tìm kích thước cụm của ổ đĩa cứng của người dùng, thông qua C hoặc C++. Ổ đĩa cứng sử dụng NTFS (mặc dù tôi rất biết ơn cách nó được thực hiện trên các hệ thống tệp khác).Lấy kích thước cụm của một ổ đĩa cứng (thông qua mã)

Tôi đoán những gì tôi cần là một số kết hợp của các cuộc gọi API win32, nhưng tôi không biết cái nào.

Ví dụ: nhập "fsutil fsinfo ntfsinfo c:" trong bảng điều khiển cửa sổ cung cấp cho bạn "Số byte trên mỗi cụm", đó là những gì tôi cần. (Mặc dù vì lý do rõ ràng, tôi không muốn chạy lệnh đó và phân tích nó là đầu ra.)

+0

Hãy ghi nhớ rằng điều này không nói với bạn nhiều lắm ấy. Các tệp nhỏ có thể được lưu trữ trong chính nút thư mục. – MSalters

+0

FWIW, kích thước cụm của một tệp hệ thống đôi khi còn được gọi là kích thước "đơn vị phân bổ", ví dụ: http://msdn.microsoft.com/en-us/library/aa383356(VS.85).aspx. – reuben

Trả lời

14

Sử dụng GetDiskFreeSpace

BOOL WINAPI GetDiskFreeSpace(
    __in LPCTSTR lpRootPathName, 
    __out LPDWORD lpSectorsPerCluster, // <-- 
    __out LPDWORD lpBytesPerSector, // <-- 
    __out LPDWORD lpNumberOfFreeClusters, 
    __out LPDWORD lpTotalNumberOfClusters 
); 
Các vấn đề liên quan