'GByte'에 해당되는 글 1건
- 2008.09.19 하드디스크 용량 가져오기
2008. 9. 19. 19:05
하드디스크 용량 가져오기
2008. 9. 19. 19:05 in Programmings/Windows Programming
GetDiskFreeSpaceEx() 라는 함수가 하드디스크의 총 용량, 사용 용량, 남은 용량을 가져오는 함수이다.
MSDN을 살펴보면 다음과 같이 함수가 정의되어 있다.
BOOL WINAPI GetDiskFreeSpaceEx(
__in LPCTSTR lpDirectoryName,
__out PULARGE_INTEGER lpFreeBytesAvailable,
__out PULARGE_INTEGER lpTotalNumberOfByte,
__out PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
사용법은 직관적으로 함수의 인자를 보면 알 수 있을 것이다.
첫 번째 인자에 원하는 파티션의 경로(c:\, d:\ 등의)를 넣어준다. 그러면 나머지 인자에서 원하는 정보를 얻을 수 있다.
간단한 예제를 가지고 사용하는 방법을 알아본다. 나중에 필요할 때 대충 참고할 요령으로.. ^^;
m_total = (int)(total.QuadPart >> 20);
m_free = (int)(free.QuadPart >> 20);
MSDN을 살펴보면 다음과 같이 함수가 정의되어 있다.
BOOL WINAPI GetDiskFreeSpaceEx(
__in LPCTSTR lpDirectoryName,
__out PULARGE_INTEGER lpFreeBytesAvailable,
__out PULARGE_INTEGER lpTotalNumberOfByte,
__out PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
사용법은 직관적으로 함수의 인자를 보면 알 수 있을 것이다.
첫 번째 인자에 원하는 파티션의 경로(c:\, d:\ 등의)를 넣어준다. 그러면 나머지 인자에서 원하는 정보를 얻을 수 있다.
간단한 예제를 가지고 사용하는 방법을 알아본다. 나중에 필요할 때 대충 참고할 요령으로.. ^^;
ULARGE_INTEGER avail, total, free;참고로 MByte 단위로 하드디스크의 용량을 계산하고자 한다면 아래와 같이 수정을 해주면 된다.
avail.QuadPart = 0L;
total.QuadPart = 0L;
free.QuadPart = 0L;
int m_avail, m_total, m_free;
TCHAR buf[125];
// C:\의 하드디스크 용량 정보를 받아올 것이다.
GetDiskFreeSpaceEx(TEXT("c:\\"), &avail, &total, &free);
// GByte 로 표현을 하기 위한 부분.. MByte는 숫자가 너무커서... -_-;
m_total = (int)(total.QuadPart>>30);
m_free = (int)(free.QuadPart>>30);
// 간단하게 메시지 박스로 출력을 해서 확인한다.
wsprintf(buf, TEXT("실제용량 %d GByte, 남은용량 %d GByte"), m_total, m_free);
MessageBox(hWnd, buf, TEXT("test"), MB_OK);
m_total = (int)(total.QuadPart >> 20);
m_free = (int)(free.QuadPart >> 20);
'Programmings > Windows Programming' 카테고리의 다른 글
노트북의 배터리 정보를 받아오자 (0) | 2008.10.01 |
---|---|
error C2664: 'CreateFileW' : cannot convert parameter 1 from 'const char [9]' to 'LPCWSTR' (0) | 2008.09.22 |
윈도우를 투명하게!!! (1) | 2008.09.19 |
Windows Power Scheme Management APIs (0) | 2008.09.11 |
Windows Power Management Structures (0) | 2008.09.11 |