MFC를 사용할 때 파일의 크기를 확인하려면 어떻게 해야 할까요? 복잡해 보일 수도 있지만, 사실 간단한 함수 몇 개만으로 이 작업을 수행할 수 있습니다. 본 글에서는 CreateFile()로 파일의 핸들을 얻고, GetFileSize()로 파일의 크기를 확인하는 방법에 대해 자세히 알아보겠습니다.
1. 파일의 핸들 얻기: CreateFile()
먼저, 파일의 크기를 확인하려면 해당 파일의 핸들을 얻어야 합니다. 이를 위해 CreateFile() 함수를 사용합니다.
CString strInputPath; // 파일 경로 저장 변수
HANDLE hFile = CreateFile(
strInputPath,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
0,
NULL
);
2. 핸들 유효성 확인
CreateFile() 함수는 성공할 경우 파일의 핸들을 반환하며, 실패할 경우 INVALID_HANDLE_VALUE를 반환합니다. 따라서 이 값을 통해 핸들의 유효성을 확인할 수 있습니다.
if (hFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("파일 열기에 실패했습니다!"));
return;
}
3. 파일 크기 확인: GetFileSize()
유효한 핸들을 통해 파일의 크기를 GetFileSize() 함수로 확인할 수 있습니다.
DWORD FileSize = GetFileSize(hFile, NULL);
4. 핸들 닫기: CloseHandle()
작업이 끝난 후에는 반드시 파일 핸들을 닫아야 합니다. 이를 위해 CloseHandle() 함수를 사용합니다.
CloseHandle(hFile);
5. 결과 출력
마지막으로 파일의 크기를 메시지 박스로 출력하여 사용자에게 알려줄 수 있습니다.
CString strMessage;
strMessage.Format(_T("파일 크기: %d 바이트"), FileSize);
AfxMessageBox(strMessage);
결론
전체소스를 보면 다음과 같습니다.
CString strInputPath; //파일의 경로를 저장하는 변수
// 파일을 열어 핸들을 얻음
HANDLE hFile = CreateFile(
strInputPath, // 파일 경로
GENERIC_READ, // 읽기 권한
0, // 파일 공유 모드
NULL, // 보안 속성
OPEN_EXISTING, // 파일이 존재할 경우 열기
0, // 파일 속성 및 플래그
NULL // 템플릿 파일 핸들
);
if (hFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("파일 열기 실패!"));
return;
}
DWORD FileSize = GetFileSize(hFile, NULL); // 파일 크기 가져오기
// 핸들을 반드시 닫아야 함
CloseHandle(hFile);
CString strMessage;
strMessage.Format(_T("파일 크기: %d 바이트"), FileSize);
AfxMessageBox(strMessage);
MFC에서 파일의 크기를 확인하는 작업은 위와 같은 단계를 거치면 간단히 해결할 수 있습니다. CreateFile()과 GetFileSize() 함수를 활용하면 파일 핸들을 얻고, 그 핸들을 통해 파일의 크기를 쉽게 알아낼 수 있습니다. 이러한 기본적인 작업들을 숙지하면 MFC를 통한 다양한 파일 작업이 더욱 편리해질 것입니다.
'Language > C C++ MFC' 카테고리의 다른 글
LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR (0) | 2007.07.14 |
---|---|
PreTranslateMessage() (0) | 2007.07.12 |
문자열 검색 (0) | 2007.05.22 |
MFC 키 포인트 (0) | 2007.05.22 |
MFC에서 View, Doc 포인터 얻기 (0) | 2007.05.21 |