Udostępnij za pośrednictwem


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

CHandle

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.

Zobacz też

Przykład markizy
Omówienie klasy
Klasa CHandle