CFile::CFile
CFile 개체를 생성하고 초기화합니다.
CFile( ); CFile( CAtlTransactionManager* pTM ); CFile( HANDLE hFile ); CFile( LPCTSTR lpszFileName, UINT nOpenFlags ); CFile( LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager* pTM );
매개 변수
hFile
CFile 개체에 연결할 파일의 핸들입니다.lpszFileName
CFile 개체에 연결할 파일의 상대 또는 전체 경로입니다.nOpenFlags
지정한 파일에 대한 파일 액세스 옵션의 비트 조합(OR)입니다. 사용 가능한 옵션은 설명 섹션을 참조하세요.pTM
CAtlTransactionManager 개체에 대한 포인터
설명
다음 5개 테이블에는 nOpenFlags 매개 변수에 사용 가능한 옵션이 나와 있습니다.
다음 파일 액세스 모드 옵션 중 하나만 선택해야 합니다. 기본 파일 액세스 모드는 CFile::modeRead(읽기 전용)입니다.
값 |
설명 |
---|---|
CFile::modeRead |
읽기 권한만 요청합니다. |
CFile::modeWrite |
쓰기 권한만 요청합니다. |
CFile::modeReadWrite |
읽기 및 쓰기 권한을 요청합니다. |
다음 문자 모드 옵션 중 하나를 선택합니다.
값 |
설명 |
---|---|
CFile::typeBinary |
이진 모드를 설정합니다(파생 클래스에만 사용됨). |
CFile::typeText |
캐리지 리턴과 줄 바꿈 쌍에 대한 특수 처리 기능이 포함된 텍스트 모드를 설정합니다(파생 클래스에만 사용됨). |
CFile::typeUnicode |
유니코드 모드를 설정합니다(파생 클래스에만 사용됨). 응용 프로그램을 유니코드 구성에서 빌드할 때는 텍스트가 유니코드 형식으로 파일에 기록됩니다. BOM이 파일에 기록되지 않습니다. |
다음 파일 공유 모드 옵션 중 하나만 선택해야 합니다. 기본 파일 공유 모드는 CFile::shareExclusive(단독)입니다.
값 |
설명 |
---|---|
CFile::shareDenyNone |
공유 제한이 없습니다. |
CFile::shareDenyRead |
다른 모든 사용자에 대해 읽기 권한을 거부합니다. |
CFile::shareDenyWrite |
다른 모든 사용자에 대해 쓰기 권한을 거부합니다. |
CFile::shareExclusive |
다른 모든 사용자에 대해 읽기 및 쓰기 권한을 거부합니다. |
다음 파일 만들기 모드 옵션 중 첫 번째 옵션 또는 두 옵션을 모두 선택합니다. 기본 만들기 모드는 CFile::modeNoTruncate(기존 파일 열기)입니다.
값 |
설명 |
---|---|
CFile::modeCreate |
파일이 없으면 새 파일을 만듭니다. 파일이 이미 있으면 CFileException이 발생합니다. |
CFile::modeNoTruncate |
파일이 없으면 새 파일을 만듭니다. 파일이 이미 있으면 CFile 개체에 연결됩니다. |
설명에 따라 다음 파일 캐싱 옵션을 선택합니다. 기본적으로 시스템은 옵션으로 제공되지 않는 범용 캐싱 구성표를 사용합니다.
값 |
설명 |
---|---|
CFile::osNoBuffer |
시스템에서 파일에 대해 중간 캐시를 사용하지 않습니다. 이 옵션은 다음 2개 옵션을 취소합니다. |
CFile::osRandomAccess |
임의 액세스를 위해 파일 캐시가 최적화됩니다. 이 옵션과 순차 검색 옵션을 함께 사용해서는 안 됩니다. |
CFile::osSequentialScan |
순차 액세스를 위해 파일 캐시가 최적화됩니다. 이 옵션과 임의 액세스 옵션을 함께 사용해서는 안 됩니다. |
CFile::osWriteThrough |
쓰기 작업이 지연 없이 수행됩니다. |
파일 핸들이 상속되지 않도록 하려면 다음 보안 옵션을 선택합니다. 기본적으로 새 자식 프로세스는 파일 핸들을 사용할 수 있습니다.
값 |
설명 |
---|---|
CFile::modeNoInherit |
자식 프로세스가 파일 핸들을 사용하지 못하도록 차단합니다. |
기본 생성자는 멤버를 초기화하지만 파일을 CFile 개체에 연결하지는 않습니다. 이 생성자를 사용한 후에는 CFile::Open 메서드를 사용하여 파일을 연 다음 CFile 개체에 연결합니다.
매개 변수가 하나 포함된 생성자는 멤버를 초기화하고 기존 파일을 CFile 개체에 연결합니다.
매개 변수가 두 개 포함된 생성자는 멤버를 초기화하고 지정한 파일 열기를 시도합니다. 이 생성자가 지정한 파일을 정상적으로 열면 파일은 CFile 개체에 연결되고, 그렇지 않으면 이 생성자가 CInvalidArgException 개체에 대한 포인터를 throw합니다. 예외를 처리하는 방법에 대한 자세한 내용은 예외를 참조하세요.
CFile 개체가 지정한 파일을 정상적으로 열면 CFile 개체 제거 시 이 파일이 자동으로 닫힙니다. 그렇지 않으면 CFile 개체에서 파일 연결을 끊은 후 파일을 명시적으로 닫아야 합니다.
예제
다음 코드에서는 CFile 사용 방법을 보여줍니다.
HANDLE hFile = CreateFile(_T("CFile_File.dat"),
GENERIC_WRITE, FILE_SHARE_READ,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("Couldn't create the file!"));
}
else
{
// Attach a CFile object to the handle we have.
CFile myFile(hFile);
static const TCHAR sz[] = _T("I love CFile!");
// write string
myFile.Write(sz, sizeof(sz));
// We can call Close() explicitly, but the destructor would have
// also closed the file for us. Note that there's no need to
// call the CloseHandle() on the handle returned by the API because
// MFC will close it for us.
myFile.Close();
요구 사항
헤더: afx.h