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.