logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

[WIN32, WINCE] 디스크 용량 구하는 방법 API GetDiskFreeSpaceEx

by digipine posted Oct 29, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

디스크 용량 구하는 방법 API GetDiskFreeSpaceEx


Prototype
BOOL GetDiskFreeSpaceEx   (
     LPCWSTR                   lpDirectoryName,
     PULARGE_INTEGER     lpFreeBytesAvailableToCaller,
     PULARGE_INTEGER     lpTotalNumberOfBytes,
     PULARGE_INTEGER     lpTotalNumberBytesOfFreeBytes  )

Parameters
lpDirectoryName [in]
- 알고자 하는 저장매체의 디렉토리 이름
- NULL 이면 Object Stroe 의 공간 정보를 가져온다.

lpFreeBytesAvailableToCaller [out]
- 남은 저장공간 용량

lpTotalNumberOfBytes [out]
- 전체 저장공간 용량

lpTotalNumberBytesOfFreeBytes [out]
- 전체 저장공간에서 남은 저장공간 용량
- NULL

Retrun Value
- 0 이면 실패 ( GetLastError() 로 실패 확인 가능 )
- 0 이 아니면 성공

Requirments
Header : winbase.h
Library : coredll.lib

사용예제

string strDrive;
 
 strDrive = "C:\\";
 ULARGE_INTEGER  _64FreeBytesToCaller, _64TotalBytes, _64FreeBytes;
 BOOL bResult = GetDiskFreeSpaceEx((LPCTSTR)strDrive.c_str(), &_64FreeBytesToCaller, &_64TotalBytes, &_64FreeBytes);

if( !bResult ) return FALSE;
//메가바이트 단위로 환산
LONGLONG nDiskFree = (UINT)((_64FreeBytes.QuadPart)/1024/1024);
LONGLONG nDiskTotal = (UINT)((_64TotalBytes.QuadPart)/1024/1024);


다른 방법으로는 GetStoreInformation API가 있는데


Prototype
BOOL GetStoreInformation (LPSTORE_INFORMATION lpsi);

여기서 구조제 STORE_INFORMATION 포인터로 정보를 넘겨 받으면 됩니다.

typedef struct STORE_INFORMATION {
    DWORD dwStoreSize;
    DWORD dwFreeSize;
} STORE_INFORMATION, *LPSTORE_INFORMATION;

WinCE에서 잘 지원됩니다.


List of Articles
No. Subject Author Date Views
45 [C#] UI Update from Thread, Thread에서 UI 업데이트 하기 샘플 코드 lizard2019 2019.01.23 1039
44 [C#] 프로그램 종료 방법 lizard2019 2019.01.23 6761
43 [C#] 코드 실행 시간 측정 및 DateTime 스트링으로 변환 포맷 lizard2019 2019.01.23 22947
42 [Win32] HBITMAP Contrast 조절하는 코드 - RGB 이미지 보정 엉뚱도마뱀 2018.05.04 734
41 [Windows] DOS 명령어 실행하고 결과 스트링 가져오는 샘플 코드 digipine 2017.11.02 2687
40 VC++ UTF8 변환 관련 매크로 digipine 2017.11.02 8778
39 C# 으로 구현한 화면 캡춰 클래스 1 digipine 2017.11.02 33962
38 C# - 한글로된 폰트명 처리 방법 개선 (Font Name Localization) digipine 2017.11.02 1388
37 [C#] StreamReader 에서의 한글 Encoding 문제 digipine 2017.10.29 999
36 [API Hooking] Dll Injection 하는 방법 digipine 2017.10.29 5210
35 [WIN32] 파일 핸들로 파일 명 구하기 digipine 2017.10.29 1060
34 [WIN32] Process ID로 HWND 구하기 digipine 2017.10.29 5012
33 MS의 Hot Fix API의 유형 연구 digipine 2017.10.29 311
32 [WIN32] 실행 중인 프로세스를 외부에서 강제로 종료, 안전한 TerminateProcess digipine 2017.10.29 3455
31 [WIN32] API Hook 정리 문서 digipine 2017.10.29 1963
» [WIN32, WINCE] 디스크 용량 구하는 방법 API GetDiskFreeSpaceEx digipine 2017.10.29 1564
29 [WINCE] MulDiv 함수 구현 digipine 2017.10.29 699
28 [DirectShow] 화면 원본 비율유지 digipine 2017.10.29 956
27 [VC++, WInAPI] 폴더를 통채로 지우기, 서브 폴더 포함, DeleteAllFiles digipine 2017.10.29 1761
26 [Win API]프로세스 아이디와 윈도우 핸들을 이용 파일명 구하기 digipine 2017.10.29 1390
Board Pagination Prev 1 2 3 Next
/ 3