Aracılığıyla paylaş


CInternetFile Sınıfı

İnternet protokollerini kullanan uzak sistemlerdeki dosyalara erişime izin verir.

Sözdizimi

class CInternetFile : public CStdioFile

Üyeler

Korumalı Oluşturucular

Veri Akışı Adı Açıklama
CInternetFile::CInternetFile Bir CInternetFile nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CInternetFile::Abort Tüm uyarıları ve hataları yoksayarak dosyayı kapatır.
CInternetFile::Close öğesini CInternetFile kapatır ve kaynaklarını serbesttir.
CInternetFile::Flush Yazma arabelleğinin içeriğini temizler ve bellekteki verilerin hedef makineye yazıldıktan emin olur.
CInternetFile::GetLength Dosyanın boyutunu döndürür.
CInternetFile::Read Belirtilen bayt sayısını okur.
CInternetFile::ReadString Karakter akışını okur.
CInternetFile::Seek İşaretçiyi açık bir dosyada yeniden konumlandırır.
CInternetFile::SetReadBufferSize Verilerin okunacağı arabelleğin boyutunu ayarlar.
CInternetFile::SetWriteBufferSize Verilerin yazılacağı arabelleğin boyutunu ayarlar.
CInternetFile::Write Belirtilen bayt sayısını yazar.
CInternetFile::WriteString Bir dosyaya null olarak sonlandırılan bir dize yazar.

Ortak İşleçler

Veri Akışı Adı Açıklama
CInternetFile::operator HINTERNET İnternet tutamacı için bir atama işleci.

Korumalı Veri Üyeleri

Veri Akışı Adı Açıklama
CInternetFile::m_hFile Dosyanın tanıtıcısı.

Açıklamalar

CHttpFile ve CGopherFile dosya sınıfları için bir temel sınıf sağlar. Hiçbir zaman doğrudan nesne CInternetFile oluşturmazsınız. Bunun yerine, türetilmiş sınıflarından birinin nesnesini CGopherConnection::OpenFile veya CHttpConnection::OpenRequest çağırarak oluşturun. CFtpConnection::OpenFile çağrısı yaparak da bir CInternetFile nesne oluşturabilirsiniz.

CInternetFile, , LockRangeUnlockRangeve Duplicate üye işlevleri Openiçin CInternetFileuygulanmaz. Bir nesnede CInternetFile bu işlevleri çağırırsanız CNotSupportedException alırsınız.

Diğer MFC İnternet sınıfları ile nasıl CInternetFile çalıştığı hakkında daha fazla bilgi edinmek için WinInet ile İnternet Programlama makalesine bakın.

Devralma Hiyerarşisi

CObject

CFile

CStdioFile

CInternetFile

Gereksinimler

Üst bilgi: afxinet.h

CInternetFile::Abort

Bu nesneyle ilişkili dosyayı kapatır ve dosyayı okuma veya yazma için kullanılamaz duruma getirir.

virtual void Abort();

Açıklamalar

Nesneyi yok etmeden önce dosyayı kapatmadıysanız, yıkıcı dosyayı sizin için kapatır.

Özel durumları işlerken Kapat'tan Abort iki önemli şekilde farklıdır. İlk olarak, Abort işlev hataları yoksaydığından hatalarda bir özel durum oluşturmaz. İkinci olarak, Abort dosya açılmamışsa veya daha önce kapatılmışsa ASSERT yapmaz.

CInternetFile::CInternetFile

Bir nesne oluşturulduğunda bu üye işlevi çağrılır CInternetFile .

CInternetFile(
    HINTERNET hFile,
    LPCTSTR pstrFileName,
    CInternetConnection* pConnection,
    BOOL bReadMode);

CInternetFile(
    HINTERNET hFile,
    HINTERNET hSession,
    LPCTSTR pstrFileName,
    LPCTSTR pstrServer,
    DWORD_PTR dwContext,
    BOOL bReadMode);

Parametreler

hFile
İnternet dosyasının tanıtıcısı.

pstrFileName
Dosya adını içeren bir dize işaretçisi.

pConnection
CInternetConnection nesnesinin işaretçisi .

bReadMode
Dosyanın salt okunur olup olmadığını gösterir.

hSession
İnternet oturumu tanıtıcısı.

pstrServer
Sunucunun adını içeren bir dize işaretçisi.

dwContext
Nesnenin bağlam tanımlayıcısı CInternetFile . Bağlam tanımlayıcısı hakkında daha fazla bilgi için bkz . WinInet Basics .

Açıklamalar

Hiçbir zaman doğrudan nesne CInternetFile oluşturmazsınız. Bunun yerine, türetilmiş sınıflarından birinin nesnesini CGopherConnection::OpenFile veya CHttpConnection::OpenRequest çağırarak oluşturun. CFtpConnection::OpenFile çağrısı yaparak da bir CInternetFile nesne oluşturabilirsiniz.

CInternetFile::Close

bir'i CInternetFile kapatır ve kaynaklarından herhangi birini serbesttir.

virtual void Close();

Açıklamalar

Dosya yazmak üzere açıldıysa, arabelleğe alınan tüm verilerin konağa yazıldığından emin olmak için Flush'a örtük bir çağrı yapılır. Dosya kullanmayı bitirdiğinizde aramanız Close gerekir.

CInternetFile::Flush

Yazma arabelleğinin içeriğini temizlemek için bu üye işlevini çağırın.

virtual void Flush();

Açıklamalar

Bellekteki tüm verilerin hedef makineye yazıldığını ve konak makineyle işleminizin tamamlandığını güvenceye almak için kullanın Flush . Flush yalnızca yazma için açılan nesneler üzerinde CInternetFile etkilidir.

CInternetFile::GetLength

Dosyanın boyutunu döndürür.

virtual ULONGLONG GetLength() const;

CInternetFile::m_hFile

Bu nesneyle ilişkilendirilmiş dosyanın tanıtıcısı.

HINTERNET m_hFile;

CInternetFile::operator HINTERNET

Geçerli İnternet oturumu için Windows tanıtıcısını almak için bu işleci kullanın.

operator HINTERNET() const;

CInternetFile::Read

Belirtilen bayt sayısı olan nCount olan lpvBuf'tan başlayarak verilen belleğe okumak için bu üye işlevini çağırın.

virtual UINT Read(
    void* lpBuf,
    UINT nCount);

Parametreler

lpBuf
Dosya verilerinin okunduğu bellek adresine yönelik bir işaretçi.

nCount
Yazılacak bayt sayısı.

Dönüş Değeri

Arabelleğe aktarılan bayt sayısı. Dosyanın sonuna ulaşıldıysa dönüş değeri nCount değerinden küçük olabilir.

Açıklamalar

İşlev, dosya sona erdiğinde nCount değerinden küçük olabilecek bir sayı olan gerçekte okunan bayt sayısını döndürür. Dosya okunurken bir hata oluşursa, işlev hatayı açıklayan bir CInternetException nesnesi oluşturur. Dosyanın sonundan sonra okunmasının hata olarak kabul edilmediğini ve özel durum oluşmayacağını unutmayın.

Tüm verilerin alındığından emin olmak için, yöntem sıfır döndürene CInternetFile::Read kadar uygulamanın yöntemini çağırmaya devam etmesi gerekir.

CInternetFile::ReadString

Yeni satır karakteri bulana kadar karakter akışını okumak için bu üye işlevini çağırın.

virtual BOOL ReadString(CString& rString);

virtual LPTSTR ReadString(
    LPTSTR pstr,
    UINT nMax);

Parametreler

pstr
Okunan satırı alacak bir dize işaretçisi.

nMax
Okunacak karakter sayısı üst sınırı.

rString
Okuma satırını alan CString nesnesine başvuru.

Dönüş Değeri

CInternetFile nesnesinden alınan düz verileri içeren arabelleğe yönelik bir işaretçi. Bu yönteme geçirilen arabelleğin veri türü ne olursa olsun, veriler üzerinde herhangi bir işleme gerçekleştirmez (örneğin, Unicode'a dönüştürme), bu nedenle döndürülen verileri beklediğiniz yapıya, tür döndürülür gibi void * eşlemeniz gerekir.

Hiçbir veri okunmadan dosya sonuna ulaşıldıysa NULL; veya boole ise, hiçbir veri okunmadan dosya sonuna ulaşıldıysa YANLIŞ.

Açıklamalar

işlevi, elde edilen satırı pstr parametresi tarafından başvuruda bulunan belleğe yerleştirir. nMax tarafından belirtilen karakter sayısı üst sınırına ulaştığında karakterleri okumayı durdurur. Arabellek her zaman sonlandırıcı bir null karakter alır.

Önce SetReadBufferSize çağrısı yapmadan çağırırsanızReadString, 4096 baytlık bir arabelleğe sahip olursunuz.

CInternetFile::Seek

İşaretçiyi daha önce açılmış bir dosyada yeniden konumlandırmak için bu üye işlevini çağırın.

virtual ULONGLONG Seek(
    LONGLONG lOffset,
    UINT nFrom);

Parametreler

lOffset
Dosyadaki okuma/yazma işaretçisini taşımak için bayt cinsinden kaydırma.

nFrom
Uzaklık için göreli başvuru. Aşağıdaki değerlerden biri olmalıdır:

  • CFile::begin Dosya işaretçisini lOff baytlarını dosyanın başından ileriye taşıyın.

  • CFile::current Dosya işaretçisini lOff baytlarını dosyadaki geçerli konumdan taşıyın.

  • CFile::end Dosya işaretçisini lOff baytlarını dosyanın sonundan taşıyın. Mevcut dosyayı aramak için lOff negatif olmalıdır; pozitif değerler dosyanın sonunu geçmiş olarak arar.

Dönüş Değeri

İstenen konum yasalsa dosyanın başından yeni bayt uzaklığı; aksi takdirde, değer tanımsız olur ve bir CInternetException nesnesi oluşturulur.

Açıklamalar

İşlev, Seek işaretçiyi kesinlikle veya göreli olarak belirtilen miktarda taşıyarak dosyanın içeriğine rastgele erişime izin verir. Arama sırasında aslında hiçbir veri okunmaz.

Şu anda, bu üye işlevine yapılan çağrı yalnızca nesnelerle CHttpFile ilişkili veriler için desteklenir. FTP veya gopher istekleri için desteklenmez. Bu desteklenmeyen hizmetlerden birini çağırırsanız Seek , sizi Win32 hata kodu ERROR_INTERNET_INVALID_OPERATION geri gönderir.

Bir dosya açıldığında, dosya işaretçisi dosyanın başlangıcı olan 0 uzaklığındadır.

Not

kullanımıSeek, Flush'a örtük bir çağrıya neden olabilir.

Örnek

Temel sınıf uygulaması ( CFile::Seek) örneğine bakın.

CInternetFile::SetReadBufferSize

Türetilmiş bir CInternetFilenesne tarafından kullanılan geçici okuma arabelleğinin boyutunu ayarlamak için bu üye işlevini çağırın.

BOOL SetReadBufferSize(UINT nReadSize);

Parametreler

nReadSize
bayt cinsinden istenen arabellek boyutu.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0. Çağrı başarısız olursa, hatanın nedenini belirlemek için Win32 işlevi GetLastError çağrılabilir.

Açıklamalar

Temel alınan WinInet API'leri arabelleğe alma gerçekleştirmez, bu nedenle okunacak veri miktarından bağımsız olarak uygulamanızın verileri verimli bir şekilde okumasına olanak tanıyan bir arabellek boyutu seçin. Okuma çağrısı normalde büyük miktarda veri içeriyorsa (örneğin, dört veya daha fazla kilobayt), arabelleğe ihtiyacınız olmamalıdır. Ancak, küçük veri öbekleri almak için çağırırsanız Read veya tek tek satırları tek tek okumak için ReadString kullanırsanız, okuma arabelleği uygulama performansını artırır.

Varsayılan olarak, bir CInternetFile nesne okuma için herhangi bir arabelleğe alma sağlamaz. Bu üye işlevini çağırırsanız, dosyanın okuma erişimi için açıldığından emin olmanız gerekir.

Arabellek boyutunu istediğiniz zaman artırabilirsiniz, ancak arabelleği küçültmenin hiçbir etkisi olmaz. ReadString'i ilk çağırmadan çağırırsanız SetReadBufferSize4096 baytlık bir arabelleğe sahip olursunuz.

CInternetFile::SetWriteBufferSize

Türetilmiş bir CInternetFilenesne tarafından kullanılan geçici yazma arabelleğinin boyutunu ayarlamak için bu üye işlevini çağırın.

BOOL SetWriteBufferSize(UINT nWriteSize);

Parametreler

nWriteSize
Arabelleğin bayt cinsinden boyutu.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0. Çağrı başarısız olursa, hatanın nedenini belirlemek için Win32 işlevi GetLastError çağrılabilir.

Açıklamalar

Temel alınan WinInet API'leri arabelleğe alma gerçekleştirmez, bu nedenle uygulamanızın yazılacak veri miktarından bağımsız olarak verimli bir şekilde veri yazabilmesini sağlayan bir arabellek boyutu seçin. Her Write çağrısı normalde büyük miktarda veri içeriyorsa (örneğin, bir kerede dört veya daha fazla kilobayt), arabelleğe ihtiyacınız olmamalıdır. Ancak, küçük veri öbekleri yazmak için Write çağrısı yaparsanız, yazma arabelleği uygulamanızın performansını artırır.

Varsayılan olarak, bir CInternetFile nesne yazma için herhangi bir arabelleğe alma sağlamaz. Bu üye işlevini çağırırsanız, dosyanın yazma erişimi için açıldığından emin olmanız gerekir. Yazma arabelleğinin boyutunu istediğiniz zaman değiştirebilirsiniz, ancak bunu yaptığınızda Flush için örtük bir çağrı yapılır.

CInternetFile::Write

Verilen belleğe( lpvBuf, belirtilen bayt sayısı, nCount) yazmak için bu üye işlevini çağırın.

virtual void Write(
    const void* lpBuf,
    UINT nCount);

Parametreler

lpBuf
Yazılacak ilk bayt için bir işaretçi.

nCount
Yazılacak bayt sayısını belirtir.

Açıklamalar

Veriler yazılırken herhangi bir hata oluşursa, işlev hatayı açıklayan bir CInternetException nesnesi oluşturur.

CInternetFile::WriteString

Bu işlev, ilişkili dosyaya null olarak sonlandırılan bir dize yazar.

virtual void WriteString(LPCTSTR pstr);

Parametreler

pstr
Yazılacak içeriği içeren bir dize işaretçisi.

Açıklamalar

Veriler yazılırken herhangi bir hata oluşursa, işlev hatayı açıklayan bir CInternetException nesnesi oluşturur.

Ayrıca bkz.

CStdioFile Sınıfı
Hiyerarşi Grafiği
CInternetConnection Sınıfı