Klasa CAtlFile
Ta klasa udostępnia cienką otokę interfejsu API obsługi plików systemu Windows.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
class CAtlFile : public CHandle
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlFile::CAtlFile | Konstruktor. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlFile::Create | Wywołaj tę metodę, aby utworzyć lub otworzyć plik. |
CAtlFile::Flush | Wywołaj tę metodę, aby wyczyścić dla pliku i spowodować zapisanie wszystkich buforowanych danych w pliku. |
CAtlFile::GetOverlappedResult | Wywołaj tę metodę, aby uzyskać wyniki nakładanej operacji na pliku. |
CAtlFile::GetPosition | Wywołaj tę metodę, aby uzyskać bieżącą pozycję wskaźnika pliku z pliku. |
CAtlFile::GetSize | Wywołaj tę metodę, aby uzyskać rozmiar w bajtach pliku. |
CAtlFile::LockRange | Wywołaj tę metodę, aby zablokować region w pliku, aby uniemożliwić innym procesom dostęp do niego. |
CAtlFile::Read | Wywołaj tę metodę, aby odczytać dane z pliku, zaczynając od pozycji wskazanej przez wskaźnik pliku. |
CAtlFile::Seek | Wywołaj tę metodę, aby przenieść wskaźnik pliku pliku. |
CAtlFile::SetSize | Wywołaj tę metodę, aby ustawić rozmiar pliku. |
CAtlFile::UnlockRange | Wywołaj tę metodę, aby odblokować region pliku. |
CAtlFile::Write | Wywołaj tę metodę, aby zapisać dane w pliku rozpoczynającym się od pozycji wskazanej przez wskaźnik pliku. |
Chronione składowe danych
Nazwa/nazwisko | opis |
---|---|
CAtlFile::m_pTM | Wskaźnik do CAtlTransactionManager obiektu |
Uwagi
Użyj tej klasy, gdy potrzeby obsługi plików są stosunkowo proste, ale wymagana jest większa abstrakcja niż zapewnia interfejs API systemu Windows bez uwzględniania zależności MFC.
Hierarchia dziedziczenia
CAtlFile
Wymagania
Nagłówek: atlfile.h
CAtlFile::CAtlFile
Konstruktor.
CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();
Parametry
plik
Obiekt pliku.
hFile
Dojście do pliku.
pTM
Wskaźnik do obiektu CAtlTransactionManager
Uwagi
Konstruktor kopiowania przenosi własność uchwytu pliku z oryginalnego CAtlFile
obiektu do nowo skonstruowanego obiektu.
CAtlFile::Create
Wywołaj tę metodę, aby utworzyć lub otworzyć plik.
HRESULT Create(
LPCTSTR szFilename,
DWORD dwDesiredAccess,
DWORD dwShareMode,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
LPSECURITY_ATTRIBUTES lpsa = NULL,
HANDLE hTemplateFile = NULL) throw();
Parametry
szFilename
Nazwa pliku.
dwDesiredAccess
Żądany dostęp. Zobacz dwDesiredAccess w pliku CreateFile w zestawie Windows SDK.
dwShareMode
Tryb udostępniania. Zobacz dwShareMode w pliku CreateFile
.
dwCreationDisposition
Dyspozycja tworzenia. Zobacz dwCreationDisposition w pliku CreateFile
.
dwFlagsAndAttributes
Flagi i atrybuty. Zobacz dwFlagsAndAttributes w pliku CreateFile
.
lpsa
Atrybuty zabezpieczeń. Zobacz lpSecurityAttributes w pliku CreateFile
.
hTemplateFile
Plik szablonu. Zobacz hTemplateFile w pliku CreateFile
.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Wywołuje metodę CreateFile , aby utworzyć lub otworzyć plik.
CAtlFile::Flush
Wywołaj tę metodę, aby wyczyścić dla pliku i spowodować zapisanie wszystkich buforowanych danych w pliku.
HRESULT Flush() throw();
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Wywołuje funkcję FlushFileBuffers , aby opróżnić buforowane dane do pliku.
CAtlFile::GetOverlappedResult
Wywołaj tę metodę, aby uzyskać wyniki nakładanej operacji na pliku.
HRESULT GetOverlappedResult(
LPOVERLAPPED pOverlapped,
DWORD& dwBytesTransferred,
BOOL bWait) throw();
Parametry
POverlapped
Nakładana struktura. Zobacz artykuł lpOverlapped w temacie GetOverlappedResult w zestawie Windows SDK.
dwBytesTransferred
Przetransferowane bajty. Zobacz lpNumberOfBytesTransferred w pliku GetOverlappedResult
.
bWait
Opcja oczekiwania. Zobacz element bWait w pliku GetOverlappedResult
.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Wywołuje metodę GetOverlappedResult , aby uzyskać wyniki nakładanej operacji na pliku.
CAtlFile::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
Wywołuje metodę SetFilePointer , aby uzyskać bieżącą pozycję wskaźnika pliku.
CAtlFile::GetSize
Wywołaj tę metodę, aby uzyskać rozmiar w bajtach pliku.
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.
Uwagi
Wywołuje metodę GetFileSize , aby uzyskać rozmiar w bajtach pliku.
CAtlFile::LockRange
Wywołaj tę metodę, aby zablokować region w pliku, 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
Wywołuje metodę LockFile , aby zablokować region w pliku. 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. Po odblokowaniu regionu przy użyciu obiektu CAtlFile::UnlockRange zakres bajtów musi 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.
CAtlFile::m_pTM
Wskaźnik do CAtlTransactionManager
obiektu.
CAtlTransactionManager* m_pTM;
Uwagi
CAtlFile::Read
Wywołaj tę metodę, aby odczytać dane z pliku, zaczynając od pozycji wskazanej przez wskaźnik pliku.
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();
Parametry
pBuffer
Wskaźnik do buforu, który otrzyma dane odczytane z pliku.
nBufSize
Rozmiar buforu w bajtach.
nBytesRead
Liczba odczytanych bajtów.
POverlapped
Nakładana struktura. Zobacz artykuł lpOverlapped w pliku ReadFile w zestawie Windows SDK.
pfnCompletionRoutine
Rutyna ukończenia. Zobacz artykuł lpCompletionRoutine w pliku ReadFileEx w zestawie Windows SDK.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Pierwsze trzy formularze wywołają plik ReadFile, ostatni element ReadFileEx , aby odczytać dane z pliku. Użyj CAtlFile::Seek , aby przenieść wskaźnik pliku.
CAtlFile::Seek
Wywołaj tę metodę, aby przenieść wskaźnik pliku pliku.
HRESULT Seek(
LONGLONG nOffset,
DWORD dwFrom = FILE_CURRENT) throw();
Parametry
nOffset
Przesunięcie 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ę SetFilePointer , aby przenieść wskaźnik pliku.
CAtlFile::SetSize
Wywołaj tę metodę, aby ustawić rozmiar pliku.
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ę SetFilePointer i SetEndOfFile , aby ustawić rozmiar pliku. Po powrocie wskaźnik pliku jest umieszczony na końcu pliku.
CAtlFile::UnlockRange
Wywołaj tę metodę, aby odblokować region pliku.
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 metodę UnlockFile , aby odblokować region pliku.
CAtlFile::Write
Wywołaj tę metodę, aby zapisać dane w pliku rozpoczynającym się od pozycji wskazanej przez wskaźnik pliku.
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();
Parametry
pBuffer
Bufor zawierający dane do zapisania w pliku.
nBufSize
Liczba bajtów, które mają zostać przeniesione z buforu.
POverlapped
Nakładana struktura. Zobacz artykuł lpOverlapped w pliku WriteFile w zestawie Windows SDK.
pfnCompletionRoutine
Rutyna ukończenia. Zobacz artykuł lpCompletionRoutine w funkcji WriteFileEx w zestawie Windows SDK.
pnBytesWritten
Zapisane bajty.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Pierwsze trzy formularze wywołają metodę WriteFile, a ostatni wywołuje metodę WriteFileEx , aby zapisać dane w pliku. Użyj CAtlFile::Seek , aby przenieść wskaźnik pliku.