Megosztás a következőn keresztül:


CInternetFile osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Engedélyezi az internetes protokollokat használó távoli rendszerek fájljainak elérését.

Szemantika

class CInternetFile : public CStdioFile

Tagok

Védett konstruktorok

Név Description
CInternetFile::CInternetFile Egy CInternetFile objektumot hoz létre.

Nyilvános metódusok

Név Description
CInternetFile::Megszakítás Bezárja a fájlt, figyelmen kívül hagyva az összes figyelmeztetést és hibát.
CInternetFile::Close Bezár egy adott erőforrást CInternetFile , és felszabadítja az erőforrásait.
CInternetFile::Flush Kiüríti az írási puffer tartalmát, és gondoskodik arról, hogy a memóriában lévő adatok a célgépre legyenek írva.
CInternetFile::GetLength A fájl méretét adja vissza.
CInternetFile::Read Beolvassa a megadott bájtok számát.
CInternetFile::ReadString Beolvassa a karakterfolyamot.
CInternetFile::Seek Áthelyezi az egérmutatót egy megnyitott fájlban.
CInternetFile::SetReadBufferSize Beállítja annak a puffernek a méretét, ahol az adatok beolvashatók.
CInternetFile::SetWriteBufferSize Beállítja annak a puffernek a méretét, ahol az adatok meg lesznek írva.
CInternetFile::Write A megadott bájtok számát írja le.
CInternetFile::WriteString Null értékű sztringet ír egy fájlba.

Nyilvános operátorok

Név Description
CInternetFile::operátor HINTERNET Egy internetes fogópont öntő operátora.

Védett adattagok

Név Description
CInternetFile::m_hFile Egy fájl leírója.

Megjegyzések

Alaposztályt biztosít a CHttpFile és a CGopherFile fájlosztályokhoz. Soha nem hozhat létre közvetlenül objektumot CInternetFile . Ehelyett hozzon létre egy objektumot az egyik származtatott osztályából a CGopherConnection::OpenFile vagy CHttpConnection::OpenRequest meghívásával. A CFtpConnection::OpenFile meghívásával is létrehozhat CInternetFile objektumot.

A CInternetFile tagfüggvények Open, LockRangeUnlockRangeés Duplicate nincsenek implementálva a következőhözCInternetFile: . Ha ezeket a függvényeket egy CInternetFile objektumon hívja meg, egy CNotSupportedException jelenik meg.

Ha többet szeretne megtudni arról, hogyan CInternetFile működik a többi MFC internetes osztály, olvassa el az Internet Programming with WinInet című cikket.

Öröklési hierarchia

CObject

CFile

CStdioFile

CInternetFile

Requirements

Fejléc: afxinet.h

CInternetFile::Megszakítás

Bezárja az objektumhoz társított fájlt, és nem teszi elérhetetlenné a fájlt olvasáshoz vagy íráshoz.

virtual void Abort();

Megjegyzések

Ha még nem zárta be a fájlt az objektum megsemmisítése előtt, a destruktor bezárja Önnek.

A kivételek Abort kezelésekor két fontos módon tér el a Bezárástól . Először is a Abort függvény nem ad kivételt a hibákra, mert figyelmen kívül hagyja a hibákat. Másodszor, nem ÉRVÉNYES, Abort ha a fájlt nem nyitották meg, vagy korábban bezárták.

CInternetFile::CInternetFile

Ez a tagfüggvény egy CInternetFile objektum létrehozásakor lesz meghívva.

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

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

Paraméterek

hFile
Egy internetes fájl leírója.

pstrFileName
A fájlnevet tartalmazó sztringre mutató mutató.

pConnection
Egy CInternetConnection objektumra mutató mutató.

bReadMode
Azt jelzi, hogy a fájl írásvédett-e.

hSession
Egy internetes munkamenet leírója.

pstrServer
A kiszolgáló nevét tartalmazó sztringre mutató mutató.

dwContext
Az objektum környezeti azonosítója CInternetFile . A környezetazonosítóval kapcsolatos további információkért tekintse meg a WinInet alapjait .

Megjegyzések

Soha nem hozhat létre közvetlenül objektumot CInternetFile . Ehelyett hozzon létre egy objektumot az egyik származtatott osztályából a CGopherConnection::OpenFile vagy CHttpConnection::OpenRequest meghívásával. A CFtpConnection::OpenFile meghívásával is létrehozhat CInternetFile objektumot.

CInternetFile::Close

Bezár egy erőforrást CInternetFile , és felszabadítja annak bármely erőforrását.

virtual void Close();

Megjegyzések

Ha a fájlt írásra nyitották meg, a Flush implicit hívása biztosítja, hogy az összes pufferelt adat meg legyen írva a gazdagépre. Ha befejezte a fájl használatát, hívja Close fel a hívást.

CInternetFile::Flush

Hívja meg ezt a tagfüggvényt az írási puffer tartalmának kiürítéséhez.

virtual void Flush();

Megjegyzések

Ezzel Flush biztosíthatja, hogy a memóriában lévő összes adat ténylegesen a célgépre lett írva, és hogy biztosítsa a gazdagéppel folytatott tranzakciót. Flush csak írásra megnyitott objektumokon CInternetFile érvényes.

CInternetFile::GetLength

A fájl méretét adja vissza.

virtual ULONGLONG GetLength() const;

CInternetFile::m_hFile

Az objektumhoz társított fájl leírója.

HINTERNET m_hFile;

CInternetFile::operátor HINTERNET

Ezzel az operátorral lekérheti a Windows-leírót az aktuális internetes munkamenethez.

operator HINTERNET() const;

CInternetFile::Read

Hívja meg ezt a tagfüggvényt, hogy beolvassa a megadott memóriába az lpvBuftól kezdve a megadott számú bájtot( nCount).

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

Paraméterek

lpBuf
Egy olyan memóriacímre mutató mutató, amelyre a fájladatok beolvasva lesznek.

nCount
Az írandó bájtok száma.

Visszaadott érték

A pufferbe átvitt bájtok száma. A visszatérési érték kisebb lehet, mint nCount , ha a fájl vége el lett érve.

Megjegyzések

A függvény a ténylegesen beolvasott bájtok számát adja vissza – ez a szám lehet kisebb, mint nCount , ha a fájl véget ér. Ha hiba történik a fájl olvasása közben, a függvény egy CInternetException objektumot ad, amely leírja a hibát. Vegye figyelembe, hogy a fájl végének beolvasása nem számít hibának, és nem lesz kivétel.

Az összes adat lekérésének biztosításához az alkalmazásnak folytatnia kell a CInternetFile::Read metódus meghívását, amíg a metódus nullát nem ad vissza.

CInternetFile::ReadString

Hívja meg ezt a tagfüggvényt, hogy elolvassa a karakterfolyamot, amíg meg nem talál egy új karaktert.

virtual BOOL ReadString(CString& rString);

virtual LPTSTR ReadString(
    LPTSTR pstr,
    UINT nMax);

Paraméterek

pstr
Egy sztringre mutató mutató, amely megkapja az éppen olvasott vonalat.

nMax
Az elolvasandó karakterek maximális száma.

rString
Az olvasási vonalat fogadó CString objektumra mutató hivatkozás.

Visszaadott érték

Mutató a CInternetFile objektumból lekért egyszerű adatokat tartalmazó pufferre. A metódusnak átadott puffer adattípusától függetlenül nem végez semmilyen módosítást az adatokon (például Unicode-ra való átalakítás), ezért a visszaadott adatokat a várt struktúrához kell megfeleltetnie, mintha a void* típus lett volna visszaadva.

NULL értékű, ha a fájl vége adatok beolvasása nélkül lett elérve; vagy logikai érték esetén HAMIS, ha a fájl vége adatolvasás nélkül lett elérve.

Megjegyzések

A függvény az eredményül kapott sort a pstr paraméter által hivatkozott memóriába helyezi. Leállítja a karakterek olvasását, amikor eléri az nMax által megadott maximális számú karaktert. A puffer mindig null karaktert kap.

Ha a SetReadBufferSize első hívása nélkül hívReadString, 4096 bájt puffert kap.

CInternetFile::Seek

A tagfüggvény meghívásával helyezze át az egérmutatót egy korábban megnyitott fájlban.

virtual ULONGLONG Seek(
    LONGLONG lOffset,
    UINT nFrom);

Paraméterek

lOffset
Eltolás bájtokban az olvasási/írási mutató áthelyezéséhez a fájlban.

nFrom
Az eltolás relatív hivatkozása. Az alábbi értékek egyikének kell lennie:

  • CFile::begin Vigye a fájlmutatót lOff bájt előre a fájl elejéről.

  • CFile::current Helyezze át a fájlmutató lOff bájtokat a fájl aktuális pozíciójából.

  • CFile::end Helyezze át a fájlmutató lOff bájtját a fájl végéről. Az lOff fájlnak negatívnak kell lennie a meglévő fájlba való kereséshez; a pozitív értékek a fájl végéig keresnek.

Visszaadott érték

Az új bájteltolódás a fájl elejéről, ha a kért pozíció jogszerű; ellenkező esetben az érték nincs definiálva, és egy CInternetException objektum lesz eldobva.

Megjegyzések

A Seek függvény lehetővé teszi a fájl tartalmának véletlenszerű elérését úgy, hogy a mutatót egy megadott mennyiségre helyezi, teljesen vagy viszonylag. A keresés során nem olvashatók be adatok.

Jelenleg a tagfüggvény hívása csak az objektumokhoz CHttpFile társított adatok esetében támogatott. FTP- vagy gopher-kérelmek esetén nem támogatott. Ha ezen nem támogatott szolgáltatások egyikét hívja Seek meg, az vissza fogja adni a Win32 hibakódjának ERROR_INTERNET_INVALID_OPERATION.

Egy fájl megnyitásakor a fájlmutató a 0. eltolásnál, a fájl elején található.

Megjegyzés:

A használat Seek implicit hívást okozhat a Flush felé.

Example

Lásd az alaposztály implementálásának példáját (CFile::Seek).

CInternetFile::SetReadBufferSize

Hívja meg ezt a tagfüggvényt a -derived objektum által CInternetFilehasznált ideiglenes olvasási puffer méretének beállításához.

BOOL SetReadBufferSize(UINT nReadSize);

Paraméterek

nReadSize
A kívánt pufferméret bájtban.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0. Ha a hívás sikertelen, a Rendszer meghívhatja a Win32 GetLastError függvényt a hiba okának meghatározásához.

Megjegyzések

A mögöttes WinInet API-k nem végeznek pufferelést, ezért válasszon olyan pufferméretet, amely lehetővé teszi az alkalmazás számára az adatok hatékony olvasását, függetlenül az olvasandó adatok mennyiségétől. Ha az olvasási hívások általában nagy mennyiségű adatot (például négy vagy több kilobájtot) foglalnak magukban, akkor nincs szükség pufferre. Ha azonban kis adattömbök lekérésére hív, Read vagy ha a ReadString használatával egyszerre olvas be egyes sorokat, akkor az olvasási puffer javítja az alkalmazás teljesítményét.

Alapértelmezés szerint egy CInternetFile objektum nem biztosít pufferelést az olvasáshoz. Ha ezt a tagfüggvényt hívja meg, győződjön meg arról, hogy a fájl olvasási hozzáférésre lett megnyitva.

A puffer méretét bármikor növelheti, de a puffer zsugorítása nem lesz hatással. Ha a ReadStringet első hívás nélkül hívja SetReadBufferSizemeg, 4096 bájt puffert kap.

CInternetFile::SetWriteBufferSize

Hívja meg ezt a tagfüggvényt a -derived objektum által CInternetFilehasznált ideiglenes írási puffer méretének beállításához.

BOOL SetWriteBufferSize(UINT nWriteSize);

Paraméterek

nWriteSize
A puffer mérete bájtban.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0. Ha a hívás sikertelen, a Rendszer meghívhatja a Win32 GetLastError függvényt a hiba okának meghatározásához.

Megjegyzések

A mögöttes WinInet API-k nem végeznek pufferelést, ezért válasszon olyan pufferméretet, amely lehetővé teszi az alkalmazás számára az adatok hatékony írását, függetlenül az írandó adatok mennyiségétől. Ha minden írási hívás általában nagy mennyiségű adatot tartalmaz (például egyszerre négy vagy több kilobájtot), akkor nincs szükség pufferre. Ha azonban kis adattömbök írására hívja meg az Írást , az írási puffer javítja az alkalmazás teljesítményét.

Alapértelmezés szerint egy CInternetFile objektum nem biztosít pufferelést az íráshoz. Ha ezt a tagfüggvényt hívja meg, győződjön meg arról, hogy a fájl meg van nyitva írási hozzáférésre. Az írási puffer méretét bármikor módosíthatja, de ha így tesz, implicit hívást indít a Flush felé.

CInternetFile::Write

Hívja meg ezt a tagfüggvényt, hogy írja be az adott memóriába( lpvBuf, a megadott bájtszám, nCount).

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

Paraméterek

lpBuf
Az első megírandó bájtra mutató mutató.

nCount
Az írandó bájtok számát adja meg.

Megjegyzések

Ha bármilyen hiba történik az adatok írása közben, a függvény egy CInternetException objektumot ad, amely leírja a hibát.

CInternetFile::WriteString

Ez a függvény null értékű sztringet ír a társított fájlba.

virtual void WriteString(LPCTSTR pstr);

Paraméterek

pstr
Mutató az írandó tartalmat tartalmazó sztringre.

Megjegyzések

Ha bármilyen hiba történik az adatok írása közben, a függvény egy CInternetException objektumot ad, amely leírja a hibát.

Lásd még

CStdioFile osztály
hierarchiadiagram
CInternetConnection osztály