Aracılığıyla paylaş


CAtlFile Sınıfı

Bu sınıf, Windows dosya işleme API'sinin çevresinde ince bir sarmalayıcı sağlar.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

class CAtlFile : public CHandle

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CAtlFile::CAtlFile Oluşturucu.

Genel Yöntemler

Veri Akışı Adı Açıklama
CAtlFile::Create Dosya oluşturmak veya açmak için bu yöntemi çağır.
CAtlFile::Flush Dosyanın arabelleklerini temizlemek ve arabelleğe alınan tüm verilerin dosyaya yazılması için bu yöntemi çağırın.
CAtlFile::GetOverlappedResult Dosyada çakışan bir işlemin sonuçlarını almak için bu yöntemi çağırın.
CAtlFile::GetPosition Geçerli dosya işaretçisi konumunu dosyadan almak için bu yöntemi çağırın.
CAtlFile::GetSize Dosyanın bayt cinsinden boyutunu almak için bu yöntemi çağırın.
CAtlFile::LockRange Diğer işlemlerin dosyaya erişmesini önlemek için dosyadaki bir bölgeyi kilitlemek için bu yöntemi çağırın.
CAtlFile::Read Dosya işaretçisi tarafından belirtilen konumdan başlayarak bir dosyadan veri okumak için bu yöntemi çağırın.
CAtlFile::Seek Dosyanın dosya işaretçisini taşımak için bu yöntemi çağırın.
CAtlFile::SetSize Dosyanın boyutunu ayarlamak için bu yöntemi çağırın.
CAtlFile::UnlockRange Dosyanın bir bölgesinin kilidini açmak için bu yöntemi çağırın.
CAtlFile::Write Dosya işaretçisi tarafından belirtilen konumdan başlayarak dosyaya veri yazmak için bu yöntemi çağırın.

Korumalı Veri Üyeleri

Veri Akışı Adı Açıklama
CAtlFile::m_pTM Nesne işaretçisi CAtlTransactionManager

Açıklamalar

Dosya işleme gereksinimleri nispeten basit olduğunda, ancak MFC bağımlılıkları dahil etmeden Windows API'sinin sağladığından daha fazla soyutlama gerektiğinde bu sınıfı kullanın.

Devralma Hiyerarşisi

CHandle

CAtlFile

Gereksinimler

Üst bilgi: atlfile.h

CAtlFile::CAtlFile

Oluşturucu.

CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();

Parametreler

dosya
Dosya nesnesi.

hFile
Dosya tanıtıcısı.

pTM
CAtlTransactionManager nesnesinin işaretçisi

Açıklamalar

Kopya oluşturucu, dosya tanıtıcısının sahipliğini özgün CAtlFile nesneden yeni yapılan nesneye aktarır.

CAtlFile::Create

Dosya oluşturmak veya açmak için bu yöntemi çağır.

HRESULT Create(
    LPCTSTR szFilename,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    HANDLE hTemplateFile = NULL) throw();

Parametreler

szFilename
Dosya adı.

dwDesiredAccess
İstenen erişim. Bkz. Windows SDK'sında CreateFile'da dwDesiredAccess.

dwShareMode
Paylaşım modu. bkz. içinde dwShareModeCreateFile.

dwCreationDisposition
Oluşturma eğilimi. Bkz. içinde CreateFiledwCreationDisposition.

dwFlagsAndAttributes
Bayraklar ve öznitelikler. Bkz. içinde dwFlagsAndAttributesCreateFile.

lpsa
Güvenlik öznitelikleri. bkz. içindeki CreateFilelpSecurityAttributes.

hTemplateFile
Şablon dosyası. Bkz. içinde CreateFilehTemplateFile.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Dosyayı oluşturmak veya açmak için CreateFile'ı çağırır.

CAtlFile::Flush

Dosyanın arabelleklerini temizlemek ve arabelleğe alınan tüm verilerin dosyaya yazılması için bu yöntemi çağırın.

HRESULT Flush() throw();

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Arabelleğe alınan verileri dosyaya boşaltmak için FlushFileBuffers'ı çağırır.

CAtlFile::GetOverlappedResult

Dosyada çakışan bir işlemin sonuçlarını almak için bu yöntemi çağırın.

HRESULT GetOverlappedResult(
    LPOVERLAPPED pOverlapped,
    DWORD& dwBytesTransferred,
    BOOL bWait) throw();

Parametreler

pOverlapped
Çakışan yapı. Bkz. Windows SDK'sında GetOverlappedResult'ta lpOverlapped.

dwBytesTransferred
Aktarılan baytlar. Bkz . lpNumberOfBytesTransferred içinde GetOverlappedResult.

bWait
Bekleme seçeneği. Bkz. içinde GetOverlappedResultbWait.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Dosyada çakışan bir işlemin sonuçlarını almak için GetOverlappedResult öğesini çağırır.

CAtlFile::GetPosition

Geçerli dosya işaretçisi konumunu almak için bu yöntemi çağırın.

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

Parametreler

nPos
Bayt cinsinden konum.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Geçerli dosya işaretçisi konumunu almak için SetFilePointer'ı çağırır.

CAtlFile::GetSize

Dosyanın bayt cinsinden boyutunu almak için bu yöntemi çağırın.

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

Parametreler

nLen
Dosyadaki bayt sayısı.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Dosyanın bayt cinsinden boyutunu almak için GetFileSize'ı çağırır.

CAtlFile::LockRange

Diğer işlemlerin dosyaya erişmesini önlemek için dosyadaki bir bölgeyi kilitlemek için bu yöntemi çağırın.

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

Parametreler

nPos
Dosyada kilidin başlaması gereken konum.

nCount
Kilitlenecek bayt aralığının uzunluğu.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Dosyadaki bir bölgeyi kilitlemek için LockFile'ı çağırır. Bir dosyadaki baytların kilitlenmesi, diğer işlemler tarafından bu baytlara erişimi engeller. Dosyanın birden fazla bölgesini kilitleyebilirsiniz, ancak çakışan bölgelere izin verilmez. CAtlFile::UnlockRange kullanarak bir bölgenin kilidini açtığınızda bayt aralığı, daha önce kilitlenmiş olan bölgeye tam olarak karşılık gelir. LockRange bitişik bölgeleri birleştirmez; iki kilitli bölge bitişikse, her birinin kilidini ayrı ayrı açmanız gerekir.

CAtlFile::m_pTM

Nesne CAtlTransactionManager işaretçisi.

CAtlTransactionManager* m_pTM;

Açıklamalar

CAtlFile::Read

Dosya işaretçisi tarafından belirtilen konumdan başlayarak bir dosyadan veri okumak için bu yöntemi çağırın.

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();

Parametreler

pBuffer
Dosyadan okunan verileri alacak arabelleğe işaretçi.

nBufSize
Bayt cinsinden arabellek boyutu.

nBytesRead
Okunan bayt sayısı.

pOverlapped
Çakışan yapı. Bkz. Windows SDK'sında ReadFile'da lpOverlapped.

pfnCompletionRoutine
Tamamlama yordamı. Bkz. Windows SDK'sında ReadFileEx'te lpCompletionRoutine.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

İlk üç form, dosyadaki verileri okumak için son ReadFileEx olan ReadFile'ı çağırır. Dosya işaretçisini taşımak için CAtlFile::Seek kullanın.

CAtlFile::Seek

Dosyanın dosya işaretçisini taşımak için bu yöntemi çağırın.

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

Parametreler

nOffset
dwFrom tarafından verilen başlangıç noktasından uzaklık.

dwFrom
Başlangıç noktası (FILE_BEGIN, FILE_CURRENT veya FILE_END).

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Dosya işaretçisini taşımak için SetFilePointer'ı çağırır.

CAtlFile::SetSize

Dosyanın boyutunu ayarlamak için bu yöntemi çağırın.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parametreler

nYeniLen
Dosyanın bayt cinsinden yeni uzunluğu.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Dosyanın boyutunu ayarlamak için SetFilePointer ve SetEndOfFile'ı çağırır. Sonuç olarak, dosya işaretçisi dosyanın sonuna konumlandırılır.

CAtlFile::UnlockRange

Dosyanın bir bölgesinin kilidini açmak için bu yöntemi çağırın.

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

Parametreler

nPos
Dosyada kilit açma işleminin başlaması gereken konum.

nCount
Kilidi açılacak bayt aralığının uzunluğu.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

Dosyanın bir bölgesinin kilidini açmak için UnlockFile'ı çağırır.

CAtlFile::Write

Dosya işaretçisi tarafından belirtilen konumdan başlayarak dosyaya veri yazmak için bu yöntemi çağırın.

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();

Parametreler

pBuffer
Dosyaya yazılacak verileri içeren arabellek.

nBufSize
Arabellekten aktarılacak bayt sayısı.

pOverlapped
Çakışan yapı. Bkz. Windows SDK'sında WriteFile'da lpOverlapped.

pfnCompletionRoutine
Tamamlama yordamı. Bkz. Windows SDK'sında WriteFileEx'te lpCompletionRoutine.

pnBytesWritten
Yazılan baytlar.

Dönüş Değeri

Başarıda S_OK veya hatada HRESULT hatası döndürür.

Açıklamalar

İlk üç form WriteFile'ı çağırır; son form, dosyaya veri yazmak için WriteFileEx'i çağırır. Dosya işaretçisini taşımak için CAtlFile::Seek kullanın.

Ayrıca bkz.

Kayan Yazı Örneği
Sınıfa Genel Bakış
CHandle Sınıfı