다음을 통해 공유


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

참고 항목

참조

CFile 클래스

계층 구조 차트