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
, , LockRange
UnlockRange
ve Duplicate
üye işlevleri Open
için CInternetFile
uygulanmaz. 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
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 CInternetFile
nesne 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 SetReadBufferSize
4096 baytlık bir arabelleğe sahip olursunuz.
CInternetFile::SetWriteBufferSize
Türetilmiş bir CInternetFile
nesne 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ı