본문 바로가기
프로그래밍/MFC

[MFC] 드라이브 타입, 전체 공간, 남은 공간(용량) 정보 얻기 (HDD 남은 용량 정보)

by GhostWeb 2019. 3. 11.
반응형


드라이브의 타입과 남은 용량과 얻어보는 방법에 대해서 알아볼게요.

드라이브의 남은 용량은 GetDiskFreeSpaceEx()를 사용해 가져 올 수 있는데

가져온 데이터가 바이트 단위이기 때문에 UI로 남은 공간을 표시할 시

표시할 데이터 단위로 변환해야 한다는 걸 잊지마세요.



설명


- ::GetDriveType() : 드라이브 타입 가져오기


UINT GetDriveTypeA(LPCSTR lpRootPathName);


DRIVE_UNKNOWN 0  

DRIVE_NO_ROOT_DIR 1

DRIVE_REMOVABLE 2  

DRIVE_FIXED 3

DRIVE_REMOTE 4 

DRIVE_CDROM 5

DRIVE_RAMDISK 6 


GetDriveType() 설명 - MS Docs



- GetDiskFreeSpaceExA() : 드라이브 남은 공간 확인

BOOL GetDiskFreeSpaceExA(

LPCSTR          lpDirectoryName,

PULARGE_INTEGER lpFreeBytesAvailableToCaller,

PULARGE_INTEGER lpTotalNumberOfBytes,

PULARGE_INTEGER lpTotalNumberOfFreeBytes

);


GetDiskFreeSpaceExA() 설명 - MS Docs



소스 코드


LPCSTR lpDirectoryName = "C:";

ULARGE_INTEGER lpFreeBytesAvailableToCaller;

ULARGE_INTEGER lpTotalNumberOfBytes;

ULARGE_INTEGER lpTotalNumberOfFreeBytes;


// 타입

UINT nType = ::GetDriveType(lpDirectoryName);


// 남은 공간 정보 가져오기

BOOL bResult = GetDiskFreeSpaceEx(lpDirectoryName, 

&lpFreeBytesAvailableToCaller, 

&lpTotalNumberOfBytes, 

&lpTotalNumberOfFreeBytes);



결과


나온 값은 바이트 단위로 데이터 크기 변환하여 

실제 디스크의 남은 공간과 맞는지 확인해보세요.




#GetDiskFreeSpaceEx #GetDriveType #MFC #VC++

#하드디스크남은용량가져오기 #하드디스크타입정보

#GetHDDFreeByte #디스크남은공간가져오기



반응형