Udostępnij za pośrednictwem


Klasa CAtlTemporaryFile

Ta klasa udostępnia metody tworzenia i używania pliku tymczasowego.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

class CAtlTemporaryFile

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CAtlTemporaryFile::CAtlTemporaryFile Konstruktor.
CAtlTemporaryFile::~CAtlTemporaryFile Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CAtlTemporaryFile::Close Wywołaj tę metodę, aby zamknąć plik tymczasowy i usunąć jego zawartość lub zapisać je pod określoną nazwą pliku.
CAtlTemporaryFile::Create Wywołaj tę metodę, aby utworzyć plik tymczasowy.
CAtlTemporaryFile::Flush Wywołaj tę metodę, aby wymusić zapisanie wszystkich danych pozostałych w buforze plików tymczasowych.
CAtlTemporaryFile::GetPosition Wywołaj tę metodę, aby uzyskać bieżącą pozycję wskaźnika pliku.
CAtlTemporaryFile::GetSize Wywołaj tę metodę, aby uzyskać rozmiar w bajtach pliku tymczasowego.
CAtlTemporaryFile::HandsOff Wywołaj tę metodę, aby usunąć skojarzenie pliku z CAtlTemporaryFile obiektu.
CAtlTemporaryFile::HandsOn Wywołaj tę metodę, aby otworzyć istniejący plik tymczasowy i umieścić wskaźnik na końcu pliku.
CAtlTemporaryFile::LockRange Wywołaj tę metodę, aby zablokować region w pliku, aby uniemożliwić innym procesom dostęp do niego.
CAtlTemporaryFile::Read Wywołaj tę metodę, aby odczytać dane z pliku tymczasowego rozpoczynającego się od pozycji wskazanej przez wskaźnik pliku.
CAtlTemporaryFile::Seek Wywołaj tę metodę, aby przenieść wskaźnik pliku tymczasowego.
CAtlTemporaryFile::SetSize Wywołaj tę metodę, aby ustawić rozmiar pliku tymczasowego.
CAtlTemporaryFile::TempFileName Wywołaj tę metodę, aby zwrócić nazwę pliku tymczasowego.
CAtlTemporaryFile::UnlockRange Wywołaj tę metodę, aby odblokować region pliku tymczasowego.
CAtlTemporaryFile::Write Wywołaj tę metodę, aby zapisać dane w pliku tymczasowym rozpoczynającym się od pozycji wskazanej przez wskaźnik pliku.

Operatory publiczne

Nazwa/nazwisko opis
CAtlTemporaryFile::operator HANDLE Zwraca uchwyt do pliku tymczasowego.

Uwagi

CAtlTemporaryFile ułatwia tworzenie i używanie pliku tymczasowego. Plik jest automatycznie nazwany, otwarty, zamknięty i usunięty. Jeśli zawartość pliku jest wymagana po zamknięciu pliku, można je zapisać w nowym pliku o określonej nazwie.

Wymagania

Nagłówek: atlfile.h

Przykład

Zobacz przykład pliku CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::CAtlTemporaryFile

Konstruktor.

CAtlTemporaryFile() throw();

Uwagi

Plik nie jest otwierany, dopóki nie zostanie wykonane wywołanie pliku CAtlTemporaryFile::Create.

Przykład

// 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

Destruktora.

~CAtlTemporaryFile() throw();

Uwagi

Destruktor wywołuje klasę CAtlTemporaryFile::Close.

CAtlTemporaryFile::Close

Wywołaj tę metodę, aby zamknąć plik tymczasowy i usunąć jego zawartość lub zapisać je pod określoną nazwą pliku.

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

Parametry

szNewName
Nazwa nowego pliku do przechowywania zawartości pliku tymczasowego. Jeśli ten argument ma wartość NULL, zawartość pliku tymczasowego zostanie usunięta.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Przykład

Zobacz przykład pliku CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Create

Wywołaj tę metodę, aby utworzyć plik tymczasowy.

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

Parametry

pszDir
Ścieżka pliku tymczasowego. Jeśli jest to wartość NULL, wywołana zostanie ścieżka GetTempPath w celu przypisania ścieżki.

dwDesiredAccess
Żądany dostęp. Zobacz dwDesiredAccess w pliku CreateFile w zestawie Windows SDK.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Przykład

Zobacz przykład pliku CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Flush

Wywołaj tę metodę, aby wymusić zapisanie wszystkich danych pozostałych w buforze plików tymczasowych.

HRESULT Flush() throw();

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Podobnie jak CAtlTemporaryFile::HandsOff, z tą różnicą, że plik nie jest zamknięty.

Przykład

Zobacz przykład pliku CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::GetPosition

Wywołaj tę metodę, aby uzyskać bieżącą pozycję wskaźnika pliku.

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

Parametry

nPos
Pozycja w bajtach.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Aby zmienić położenie wskaźnika pliku, użyj CAtlTemporaryFile ::Seek.

CAtlTemporaryFile::GetSize

Wywołaj tę metodę, aby uzyskać rozmiar w bajtach pliku tymczasowego.

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

Parametry

nLen
Liczba bajtów w pliku.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

CAtlTemporaryFile::HandsOff

Wywołaj tę metodę, aby usunąć skojarzenie pliku z CAtlTemporaryFile obiektu.

HRESULT HandsOff() throw();

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

HandsOff i CAtlTemporaryFile::HandsOn są używane do rozłączania pliku z obiektu i ponownego dołączenia go w razie potrzeby. HandsOff wymusi zapisanie wszystkich danych pozostałych w buforze plików do pliku tymczasowego, a następnie zamknięcie pliku. Jeśli chcesz trwale zamknąć i usunąć plik lub jeśli chcesz zamknąć i zachować zawartość pliku o podanej nazwie, użyj CAtlTemporaryFile::Close.

CAtlTemporaryFile::HandsOn

Wywołaj tę metodę, aby otworzyć istniejący plik tymczasowy i umieścić wskaźnik na końcu pliku.

HRESULT HandsOn() throw();

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

CAtlTemporaryFile::HandsOff i HandsOn są używane do rozłączania pliku z obiektu i ponownego dołączenia go w razie potrzeby.

CAtlTemporaryFile::LockRange

Wywołaj tę metodę, aby zablokować region w pliku tymczasowym, aby uniemożliwić innym procesom dostęp do niego.

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

Parametry

nPos
Pozycja w pliku, w którym powinna zaczynać się blokada.

nCount
Długość zakresu bajtów do zablokowania.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Blokowanie bajtów w pliku uniemożliwia dostęp do tych bajtów przez inne procesy. Możesz zablokować więcej niż jeden region pliku, ale nie są dozwolone żadne nakładające się regiony. Aby pomyślnie odblokować region, użyj CAtlTemporaryFile::UnlockRange, zapewniając, że zakres bajtów odpowiada dokładnie regionowi, który został wcześniej zablokowany. LockRange nie scala sąsiednich regionów; Jeśli sąsiadują dwa zablokowane regiony, należy je odblokować oddzielnie.

CAtlTemporaryFile::operator HANDLE

Zwraca uchwyt do pliku tymczasowego.

operator HANDLE() throw();

CAtlTemporaryFile::Read

Wywołaj tę metodę, aby odczytać dane z pliku tymczasowego rozpoczynającego się od pozycji wskazanej przez wskaźnik pliku.

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

Parametry

pBuffer
Wskaźnik do buforu, który otrzyma dane odczytane z pliku.

nBufSize
Rozmiar buforu w bajtach.

nBytesRead
Liczba odczytanych bajtów.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Wywołuje plik CAtlFile::Read. Aby zmienić położenie wskaźnika pliku, wywołaj metodę CAtlTemporaryFile::Seek.

Przykład

Zobacz przykład pliku CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Seek

Wywołaj tę metodę, aby przenieść wskaźnik pliku tymczasowego.

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

Parametry

nOffset
Przesunięcie w bajtach od punktu początkowego podanego przez dwFrom.

dwFrom
Punkt początkowy (FILE_BEGIN, FILE_CURRENT lub FILE_END).

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Wywołuje metodę CAtlFile::Seek. Aby uzyskać bieżącą pozycję wskaźnika pliku, wywołaj metodę CAtlTemporaryFile::GetPosition.

Przykład

Zobacz przykład pliku CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::SetSize

Wywołaj tę metodę, aby ustawić rozmiar pliku tymczasowego.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parametry

nNewLen
Nowa długość pliku w bajtach.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Wywołuje metodę CAtlFile::SetSize. Po powrocie wskaźnik pliku jest umieszczony na końcu pliku.

CAtlTemporaryFile::TempFileName

Wywołaj tę metodę, aby zwrócić nazwę pliku tymczasowego.

LPCTSTR TempFileName() throw();

Wartość zwracana

Zwraca wartość LPCTSTR wskazującą nazwę pliku.

Uwagi

Nazwa pliku jest generowana w pliku CAtlTemporaryFile::CAtlTemporaryFile z wywołaniem funkcji GetTempFilezestawu Windows SDK. Rozszerzenie pliku będzie zawsze "TFR" dla pliku tymczasowego.

CAtlTemporaryFile::UnlockRange

Wywołaj tę metodę, aby odblokować region pliku tymczasowego.

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

Parametry

nPos
Pozycja w pliku, w którym powinno się rozpocząć odblokowywanie.

nCount
Długość zakresu bajtów do odblokowania.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Wywołuje plik CAtlFile::UnlockRange.

CAtlTemporaryFile::Write

Wywołaj tę metodę, aby zapisać dane w pliku tymczasowym rozpoczynającym się od pozycji wskazanej przez wskaźnik pliku.

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

Parametry

pBuffer
Bufor zawierający dane do zapisania w pliku.

nBufSize
Liczba bajtów, które mają zostać przeniesione z buforu.

pnBytesWritten
Liczba zapisanych bajtów.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Wywołuje metodę CAtlFile::Write.

Przykład

Zobacz przykład pliku CAtlTemporaryFile::CAtlTemporaryFile.

Zobacz też

Omówienie klasy
Klasa CAtlFile