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 오류를 반환합니다.
설명
HandsOff
및 CAtlTemporaryFile::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에 대한 예제를 참조하세요.