다음을 통해 공유


CAtlFile 클래스

이 클래스는 Windows 파일 처리 API 주위에 씬 래퍼를 제공합니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

class CAtlFile : public CHandle

멤버

공용 생성자

속성 설명
CAtlFile::CAtlFile 생성자입니다.

공용 메서드

이름 설명
CAtlFile::Create 파일을 만들거나 열려면 이 메서드를 호출합니다.
CAtlFile::Flush 이 메서드를 호출하여 파일의 버퍼를 지우고 모든 버퍼링된 데이터를 파일에 쓰게 합니다.
CAtlFile::GetOverlappedResult 이 메서드를 호출하여 파일에서 겹치는 작업의 결과를 가져옵니다.
CAtlFile::GetPosition 이 메서드를 호출하여 파일에서 현재 파일 포인터 위치를 가져옵니다.
CAtlFile::GetSize 파일의 크기(바이트)를 얻으려면 이 메서드를 호출합니다.
CAtlFile::LockRange 다른 프로세스에서 액세스하지 못하도록 파일의 지역을 잠그려면 이 메서드를 호출합니다.
CAtlFile::Read 파일 포인터가 나타내는 위치에서 시작하여 파일에서 데이터를 읽으려면 이 메서드를 호출합니다.
CAtlFile::Seek 파일의 파일 포인터를 이동하려면 이 메서드를 호출합니다.
CAtlFile::SetSize 파일 크기를 설정하려면 이 메서드를 호출합니다.
CAtlFile::UnlockRange 파일의 영역 잠금을 해제하려면 이 메서드를 호출합니다.
CAtlFile::Write 이 메서드를 호출하여 파일 포인터가 나타내는 위치에서 시작하여 파일에 데이터를 씁니다.

보호된 데이터 멤버

속성 설명
CAtlFile::m_pTM 개체에 대한 CAtlTransactionManager 포인터

설명

파일 처리 요구 사항이 비교적 간단하지만 MFC 종속성을 포함하지 않고 Windows API에서 제공하는 것보다 더 많은 추상화가 필요한 경우 이 클래스를 사용합니다.

상속 계층 구조

CHandle

CAtlFile

요구 사항

헤더: atlfile.h

CAtlFile::CAtlFile

생성자입니다.

CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();

매개 변수

file
파일 개체입니다.

hFile
파일 핸들입니다.

pTM
CAtlTransactionManager 개체에 대한 포인터

설명

복사 생성자는 파일 핸들의 소유권을 원래 CAtlFile 개체에서 새로 생성된 개체로 전송합니다.

CAtlFile::Create

파일을 만들거나 열려면 이 메서드를 호출합니다.

HRESULT Create(
    LPCTSTR szFilename,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    HANDLE hTemplateFile = NULL) throw();

매개 변수

szFilename
파일 이름입니다.

dwDesiredAccess
원하는 액세스 권한입니다. Windows SDK의 CreateFile에서 dwDesiredAccess를 참조하세요.

dwShareMode
공유 모드입니다. 에서 dwShareModeCreateFile참조하세요.

dwCreationDisposition
생성 처리입니다. 에서 dwCreationDispositionCreateFile참조하세요.

dwFlagsAndAttributes
플래그 및 특성입니다. 에서 dwFlagsAndAttributesCreateFile참조하세요.

lpsa
보안 특성입니다. 에서 lpSecurityAttributes를 CreateFile 참조하세요.

hTemplateFile
템플릿 파일입니다. 에서 hTemplateFileCreateFile참조하세요.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

CreateFile을 호출하여 파일을 만들거나 엽니다.

CAtlFile::Flush

이 메서드를 호출하여 파일의 버퍼를 지우고 모든 버퍼링된 데이터를 파일에 쓰게 합니다.

HRESULT Flush() throw();

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

FlushFileBuffers를 호출하여 버퍼링된 데이터를 파일로 플러시합니다.

CAtlFile::GetOverlappedResult

이 메서드를 호출하여 파일에서 겹치는 작업의 결과를 가져옵니다.

HRESULT GetOverlappedResult(
    LPOVERLAPPED pOverlapped,
    DWORD& dwBytesTransferred,
    BOOL bWait) throw();

매개 변수

pOverlapped
겹치는 구조체입니다. Windows SDK의 GetOverlappedResult에서 lpOverlapped를 참조하세요.

dwBytesTransferred
전송된 바이트입니다. 에서 lpNumberOfBytesTransferred를 GetOverlappedResult 참조하세요.

bWait
대기 옵션입니다. 에서 bWaitGetOverlappedResult참조하세요.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

GetOverlappedResult를 호출하여 파일에서 겹치는 작업의 결과를 가져옵니다.

CAtlFile::GetPosition

이 메서드를 호출하여 현재 파일 포인터 위치를 가져옵니다.

HRESULT GetPosition(ULONGLONG& nPos) const throw();

매개 변수

nPos
위치(바이트)입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

SetFilePointer를 호출하여 현재 파일 포인터 위치를 가져옵니다.

CAtlFile::GetSize

파일의 크기(바이트)를 얻으려면 이 메서드를 호출합니다.

HRESULT GetSize(ULONGLONG& nLen) const throw();

매개 변수

nLen
파일의 바이트 수입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

GetFileSize를 호출하여 파일의 크기(바이트)를 가져옵니다.

CAtlFile::LockRange

다른 프로세스에서 액세스하지 못하도록 파일의 지역을 잠그려면 이 메서드를 호출합니다.

HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

매개 변수

nPos
잠금이 시작될 파일의 위치입니다.

nCount
잠글 바이트 범위의 길이입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

LockFile을 호출하여 파일의 영역을 잠급 수 있습니다. 파일의 바이트를 잠그면 다른 프로세스에서 해당 바이트에 액세스할 수 없습니다. 파일의 영역을 둘 이상 잠글 수 있지만 겹치는 영역은 허용되지 않습니다. CAtlFile::UnlockRange를 사용하여 영역의 잠금을 해제하는 경우 바이트 범위는 이전에 잠긴 지역과 정확히 일치해야 합니다. LockRange 인접한 지역을 병합하지 않습니다. 두 개의 잠긴 영역이 인접한 경우 각각을 개별적으로 잠금 해제해야 합니다.

CAtlFile::m_pTM

CAtlTransactionManager 개체에 대한 포인터입니다.

CAtlTransactionManager* m_pTM;

설명

CAtlFile::Read

파일 포인터가 나타내는 위치에서 시작하여 파일에서 데이터를 읽으려면 이 메서드를 호출합니다.

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

매개 변수

pBuffer
파일에서 읽은 데이터를 받을 버퍼에 대한 포인터입니다.

nBufSize
버퍼 크기(바이트)입니다.

nBytesRead
읽은 바이트 수입니다.

pOverlapped
겹치는 구조체입니다. Windows SDK의 ReadFile에서 lpOverlapped를 참조하세요.

pfnCompletionRoutine
완료 루틴입니다. Windows SDK의 ReadFileEx에서 lpCompletionRoutine을 참조하세요.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

처음 세 개의 양식은 파일에서 데이터를 읽는 마지막 ReadFileEx인 ReadFile을 호출합니다. CAtlFile::Seek를 사용하여 파일 포인터를 이동합니다.

CAtlFile::Seek

파일의 파일 포인터를 이동하려면 이 메서드를 호출합니다.

HRESULT Seek(
    LONGLONG nOffset,
    DWORD dwFrom = FILE_CURRENT) throw();

매개 변수

nOffset
dwFrom에서 지정한 시작점의 오프셋입니다.

dwFrom
시작점(FILE_BEGIN, FILE_CURRENT 또는 FILE_END)입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

SetFilePointer를 호출하여 파일 포인터를 이동합니다.

CAtlFile::SetSize

파일 크기를 설정하려면 이 메서드를 호출합니다.

HRESULT SetSize(ULONGLONG nNewLen) throw();

매개 변수

nNewLen
파일의 새 길이(바이트)입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

SetFilePointerSetEndOfFile을 호출하여 파일 크기를 설정합니다. 반환 시 파일 포인터는 파일의 끝에 배치됩니다.

CAtlFile::UnlockRange

파일의 영역 잠금을 해제하려면 이 메서드를 호출합니다.

HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

매개 변수

nPos
잠금 해제를 시작해야 하는 파일의 위치입니다.

nCount
잠금 해제할 바이트 범위의 길이입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

UnlockFile을 호출하여 파일의 영역 잠금을 해제합니다.

CAtlFile::Write

이 메서드를 호출하여 파일 포인터가 나타내는 위치에서 시작하여 파일에 데이터를 씁니다.

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

매개 변수

pBuffer
파일에 쓸 데이터를 포함하는 버퍼입니다.

nBufSize
버퍼에서 전송할 바이트 수입니다.

pOverlapped
겹치는 구조체입니다. Windows SDK의 WriteFile에서 lpOverlapped를 참조하세요.

pfnCompletionRoutine
완료 루틴입니다. Windows SDK의 WriteFileEx에서 lpCompletionRoutine을 참조하세요.

pnBytesWritten
기록된 바이트입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

처음 세 폼은 WriteFile을 호출하고, 마지막으로 WriteFileEx를 호출하여 파일에 데이터를 씁니다. CAtlFile::Seek를 사용하여 파일 포인터를 이동합니다.

참고 항목

선택 윤곽 샘플
클래스 개요
CHandle 클래스