다음을 통해 공유


CAtlTemporaryFile 클래스

이 클래스는 임시 파일을 만들고 사용하기 위한 메서드를 제공합니다.

Important

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

구문

class CAtlTemporaryFile

멤버

공용 생성자

속성 설명
CAtlTemporaryFile::CAtlTemporaryFile 생성자입니다.
CAtlTemporaryFile::~CAtlTemporaryFile 소멸자입니다.

공용 메서드

이름 설명
CAtlTemporaryFile::Close 이 메서드를 호출하여 임시 파일을 닫고 해당 내용을 삭제하거나 지정된 파일 이름 아래에 저장합니다.
CAtlTemporaryFile::Create 임시 파일을 만들려면 이 메서드를 호출합니다.
CAtlTemporaryFile::Flush 파일 버퍼에 남아 있는 모든 데이터를 임시 파일에 쓰도록 하려면 이 메서드를 호출합니다.
CAtlTemporaryFile::GetPosition 이 메서드를 호출하여 현재 파일 포인터 위치를 가져옵니다.
CAtlTemporaryFile::GetSize 이 메서드를 호출하여 임시 파일의 크기(바이트)를 가져옵니다.
CAtlTemporaryFile::HandsOff 개체에서 파일을 연결 해제하려면 이 메서드를 CAtlTemporaryFile 호출합니다.
CAtlTemporaryFile::HandsOn 이 메서드를 호출하여 기존 임시 파일을 열고 포인터를 파일 끝에 배치합니다.
CAtlTemporaryFile::LockRange 다른 프로세스에서 액세스하지 못하도록 파일의 지역을 잠그려면 이 메서드를 호출합니다.
CAtlTemporaryFile::Read 이 메서드를 호출하여 파일 포인터가 나타내는 위치에서 시작하는 임시 파일에서 데이터를 읽습니다.
CAtlTemporaryFile::Seek 임시 파일의 파일 포인터를 이동하려면 이 메서드를 호출합니다.
CAtlTemporaryFile::SetSize 임시 파일의 크기를 설정하려면 이 메서드를 호출합니다.
CAtlTemporaryFile::TempFileName 임시 파일의 이름을 반환하려면 이 메서드를 호출합니다.
CAtlTemporaryFile::UnlockRange 임시 파일의 영역 잠금을 해제하려면 이 메서드를 호출합니다.
CAtlTemporaryFile::Write 이 메서드를 호출하여 파일 포인터가 나타내는 위치에서 시작하여 임시 파일에 데이터를 씁니다.

Public 연산자

속성 설명
CAtlTemporaryFile::operator HANDLE 임시 파일에 대한 핸들을 반환합니다.

설명

CAtlTemporaryFile 을 사용하면 임시 파일을 쉽게 만들고 사용할 수 있습니다. 파일의 이름은 자동으로 지정되고, 열리고, 닫히고, 삭제됩니다. 파일을 닫은 후 파일 내용이 필요한 경우 지정된 이름을 가진 새 파일에 저장할 수 있습니다.

요구 사항

헤더: atlfile.h

예시

CAtlTemporaryFile::CAtlTemporaryFile에 대한 예제를 참조하세요.

CAtlTemporaryFile::CAtlTemporaryFile

생성자입니다.

CAtlTemporaryFile() throw();

설명

CAtlTemporaryFile::Create에 대한 호출이 수행될 때까지 파일이 실제로 열리지 않습니다.

예시

// Declare the temporary file object
CAtlTemporaryFile myTempFile;

// Create the temporary file, without caring where it
// will be created, but with both read and write access.
ATLVERIFY (myTempFile.Create(NULL, GENERIC_READ|GENERIC_WRITE) == S_OK);

// Create some data to write to the file

int nBuffer[100];
DWORD bytes_written = 0, bytes_read = 0;
int i;

for (i = 0; i < 100; i++)
   nBuffer[i] = i;

// Write some data to the file
myTempFile.Write(&nBuffer, sizeof(nBuffer), &bytes_written);

// Confirm it was written ok
ATLASSERT(bytes_written == sizeof(nBuffer));

// Flush the data to disk
ATLVERIFY(myTempFile.Flush() == S_OK);

// Reset the file pointer to the beginning of the file
ATLVERIFY(myTempFile.Seek(0, FILE_BEGIN) == S_OK);

// Read in the data
myTempFile.Read(&nBuffer, sizeof(nBuffer), bytes_read);

// Confirm it was read ok
ATLASSERT(bytes_read == sizeof(nBuffer));

// Close the file, making a copy of it at another location
ATLVERIFY(myTempFile.Close(_T("c:\\temp\\mydata.tmp")) == S_OK);

CAtlTemporaryFile::~CAtlTemporaryFile

소멸자입니다.

~CAtlTemporaryFile() throw();

설명

소멸자는 CAtlTemporaryFile::Close를 호출 합니다.

CAtlTemporaryFile::Close

이 메서드를 호출하여 임시 파일을 닫고 해당 내용을 삭제하거나 지정된 파일 이름 아래에 저장합니다.

HRESULT Close(LPCTSTR szNewName = NULL) throw();

매개 변수

szNewName
임시 파일의 내용을 저장할 새 파일의 이름입니다. 이 인수가 NULL이면 임시 파일의 내용이 삭제됩니다.

Return Value

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

예시

CAtlTemporaryFile::CAtlTemporaryFile에 대한 예제를 참조하세요.

CAtlTemporaryFile::Create

임시 파일을 만들려면 이 메서드를 호출합니다.

HRESULT Create(LPCTSTR pszDir = NULL, DWORD dwDesiredAccess = GENERIC_WRITE) throw();

매개 변수

pszDir
임시 파일의 경로입니다. NULL 이면 GetTempPath 가 호출되어 경로를 할당합니다.

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

Return Value

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

예시

CAtlTemporaryFile::CAtlTemporaryFile에 대한 예제를 참조하세요.

CAtlTemporaryFile::Flush

파일 버퍼에 남아 있는 모든 데이터를 임시 파일에 쓰도록 하려면 이 메서드를 호출합니다.

HRESULT Flush() throw();

Return Value

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

설명

파일이 닫혀 있지 않다는 점을 제외하고 CAtlTemporaryFile::HandsOff와 유사합니다.

예시

CAtlTemporaryFile::CAtlTemporaryFile에 대한 예제를 참조하세요.

CAtlTemporaryFile::GetPosition

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

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

매개 변수

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

Return Value

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

설명

파일 포인터 위치를 변경하려면 CAtlTemporaryFile::Seek를 사용합니다.

CAtlTemporaryFile::GetSize

이 메서드를 호출하여 임시 파일의 크기(바이트)를 가져옵니다.

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

매개 변수

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

Return Value

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

CAtlTemporaryFile::HandsOff

개체에서 파일을 연결 해제하려면 이 메서드를 CAtlTemporaryFile 호출합니다.

HRESULT HandsOff() throw();

Return Value

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

설명

HandsOffCAtlTemporaryFile::HandsOn 은 개체에서 파일을 분리하고 필요한 경우 다시 연결하는 데 사용됩니다. HandsOff 는 파일 버퍼에 남아 있는 모든 데이터를 임시 파일에 기록하도록 한 다음 파일을 닫습니다. 파일을 영구적으로 닫고 삭제하거나 지정된 이름으로 파일 내용을 닫고 유지하려면 CAtlTemporaryFile::Close를 사용합니다.

CAtlTemporaryFile::HandsOn

이 메서드를 호출하여 기존 임시 파일을 열고 포인터를 파일 끝에 배치합니다.

HRESULT HandsOn() throw();

Return Value

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

설명

CAtlTemporaryFile::HandsOff 이며 HandsOn 개체에서 파일을 연결 해제하고 필요한 경우 다시 연결하는 데 사용됩니다.

CAtlTemporaryFile::LockRange

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

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

매개 변수

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

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

Return Value

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

설명

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

CAtlTemporaryFile::operator HANDLE

임시 파일에 대한 핸들을 반환합니다.

operator HANDLE() throw();

CAtlTemporaryFile::Read

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

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

매개 변수

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

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

nBytesRead
읽은 바이트 수입니다.

Return Value

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

설명

CAtlFile::Read를 호출합니다. 파일 포인터의 위치를 변경하려면 CAtlTemporaryFile::Seek를 호출 합니다.

예시

CAtlTemporaryFile::CAtlTemporaryFile에 대한 예제를 참조하세요.

CAtlTemporaryFile::Seek

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

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

매개 변수

nOffset
dwFrom에서 지정 한 시작점의 오프셋(바이트)입니다.

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

Return Value

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

설명

CAtlFile::Seek를 호출 합니다. 현재 파일 포인터 위치를 가져오려면 CAtlTemporaryFile::GetPosition을 호출합니다.

예시

CAtlTemporaryFile::CAtlTemporaryFile에 대한 예제를 참조하세요.

CAtlTemporaryFile::SetSize

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

HRESULT SetSize(ULONGLONG nNewLen) throw();

매개 변수

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

Return Value

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

설명

CAtlFile::SetSize를 호출 합니다. 반환 시 파일 포인터는 파일의 끝에 배치됩니다.

CAtlTemporaryFile::TempFileName

임시 파일의 이름을 반환하려면 이 메서드를 호출합니다.

LPCTSTR TempFileName() throw();

Return Value

파일 이름을 가리키는 LPCTSTR을 반환합니다.

설명

파일 이름은 GetTempFile Windows SDK 함수를 호출하여 CAtlTemporaryFile::CAtlTemporaryFile에서 생성됩니다. 파일 확장명은 항상 임시 파일의 "TFR"입니다.

CAtlTemporaryFile::UnlockRange

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

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

매개 변수

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

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

Return Value

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

설명

CAtlFile::UnlockRange를 호출 합니다.

CAtlTemporaryFile::Write

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

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

매개 변수

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

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

pnBytesWritten
쓴 바이트 수.

Return Value

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

설명

CAtlFile::Write를 호출 합니다.

예시

CAtlTemporaryFile::CAtlTemporaryFile에 대한 예제를 참조하세요.

참고 항목

클래스 개요
CAtlFile 클래스