Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A fájl- és stream I/O (bemenet/kimenet) az adatok tárolóeszközre vagy tárolóeszközről történő átvitelére utal. A .NET-ben a System.IO névterek olyan típusokat tartalmaznak, amelyek szinkron módon és aszinkron módon is lehetővé teszik az olvasást és az írást adatfolyamokon és fájlokon. Ezek a névterek olyan típusokat is tartalmaznak, amelyek tömörítést és kitömörítést végeznek a fájlokon, valamint olyan típusokat is, amelyek lehetővé teszik a csöveken és soros portokon keresztüli kommunikációt.
A fájl egy rendezett és elnevezett bájtgyűjtemény, amely állandó tárterületet biztosít. Ha fájlokkal dolgozik, a címtár elérési útjaival, a lemeztárolóval, valamint a fájl- és könyvtárnevekkel dolgozik. Ezzel szemben a stream bájtokból álló sorozat, amellyel olvasást és írást végezhet egy háttértárban, amely több tárolóeszköz (például lemezek vagy memória) egyike lehet. Ahogy a lemezeken kívül több háttértár is létezik, a fájlstreameken kívül számos más típusú stream is létezik, például hálózati, memória- és csőstreamek.
Fájlok és könyvtárak
A névtérben található típusok segítségével kezelheti a System.IO fájlokat és könyvtárakat. Lekérheti és beállíthatja például a fájlok és könyvtárak tulajdonságait, és keresési feltételek alapján lekérheti a fájlok és könyvtárak gyűjteményeit.
Az elérésiút-elnevezési konvenciókról és a Windows-rendszerek fájlútvonalának kifejezési módjairól , beleértve a .NET Core 1.1-ben és újabb verziókban támogatott DOS-eszközszintaxisokat, valamint a .NET-keretrendszer 4.6.2-s és újabb verzióiban támogatott DOS-eszközszintaxisokat, tekintse meg a Windows rendszerek fájlútvonal-formátumait.
Íme néhány gyakran használt fájl- és könyvtárosztály:
File - statikus módszereket biztosít fájlok létrehozására, másolására, törlésére, áthelyezésére és megnyitására, és segít létrehozni egy objektumot FileStream .
FileInfo - a fájlok létrehozására, másolására, törlésére, áthelyezésére és megnyitására szolgáló példánymetódusokat biztosít, és segít létrehozni egy objektumot FileStream .
Directory - statikus metódusokat biztosít a könyvtárak és alkönyvtárak létrehozására, áthelyezésére és számbavételére.
DirectoryInfo - példánymetódusokat biztosít, amelyek lehetővé teszik könyvtárak és alkönyvtárak létrehozását, áthelyezését és bejárását.
Path - metódusokat és tulajdonságokat biztosít a címtár-sztringek platformfüggetlen feldolgozásához.
A fájlrendszer metódusok meghívásakor mindig hatékony kivételkezelést kell biztosítani. További információ: I/O-hibák kezelése.
Ezen osztályok használata mellett a Visual Basic-felhasználók használhatják az osztály által Microsoft.VisualBasic.FileIO.FileSystem a fájl I/O-hoz biztosított metódusokat és tulajdonságokat.
Lásd : Könyvtárak másolása, útmutató: Címtárlista létrehozása és útmutató: Könyvtárak és fájlok számbavétele.
Adatfolyamok
Az absztrakt alaposztály Stream támogatja a bájtok olvasását és írását. Az összes osztály, amely streameket képvisel, a(z) Stream osztálytól öröklődik. Az Stream osztály és származtatott osztályai közös képet nyújtanak az adatforrások és adattárakról, és elkülönítik a programozót az operációs rendszer és a mögöttes eszközök konkrét részleteitől.
A streamek három alapvető műveletet foglalnak magukban:
Olvasás – adatok átvitele adatfolyamból adatstruktúrába, például bájtokból álló tömbbe.
Írás – adatok átvitele adatfolyamba egy adatforrásból.
Keresés – az aktuális pozíció lekérdezése és módosítása egy streamen belül.
Az alapul szolgáló adatforrástól vagy adattártól függően előfordulhat, hogy a streamek csak néhány ilyen képességet támogatnak. Az osztály például nem támogatja a PipeStream keresést. A CanRead, CanWrite és CanSeek tulajdonságai meghatározzák azokat a műveleteket, amelyeket a stream támogat.
Íme néhány gyakran használt streamosztály:
FileStream – fájlok olvasásához és írásához.
IsolatedStorageFileStream – fájlba való olvasáshoz és íráshoz izolált tárolóban.
MemoryStream – a memóriába való olvasáshoz és íráshoz háttértárként.
BufferedStream – az olvasási és írási műveletek teljesítményének javítása érdekében.
NetworkStream – hálózati aljzatokon keresztüli olvasáshoz és íráshoz.
PipeStream – névtelen és elnevezett csöveken keresztüli olvasáshoz és íráshoz.
CryptoStream – az adatfolyamok titkosítási átalakításokhoz való csatolásához.
Példa a streamek aszinkron használatára: Aszinkron fájl I/O.
Olvasók és írók
A System.IO névtér típusokat is biztosít a kódolt karakterek streamekből való olvasásához és streamekbe való írásához. A streamek általában bájtos bemenetre és kimenetre vannak tervezve. Az olvasó- és írótípusok kezelik a kódolt karakterek bájtokra és bájtokból való konvertálását, hogy a stream végrehajthassa a műveletet. Minden olvasó- és íróosztály egy streamhez van társítva, amely az osztály tulajdonságán BaseStream keresztül kérhető le.
Íme néhány gyakran használt olvasói és írói osztály:
BinaryReader és BinaryWriter – a primitív adattípusok bináris értékekként való olvasásához és írásához.
StreamReader és StreamWriter – a karakterek olvasása és írása egy kódolási érték felhasználásával, amely a karaktereket bájtokká alakítja és onnan vissza.
StringReader és StringWriter – a karakterek sztringekbe és sztringekből való olvasásához és írásához.
TextReader és TextWriter – absztrakt alaposztályként szolgál más olvasók és írók számára, akik karaktereket és sztringeket olvasnak és írnak, de bináris adatokat nem.
Lásd : Szöveg olvasása fájlból, Útmutató: Szöveg írása fájlba, Útmutató: Karakterek olvasása sztringből, és útmutató: Karakterek írása karakterláncba.
Aszinkron I/O-műveletek
Nagy mennyiségű adat olvasása vagy írása erőforrás-igényes lehet. Ezeket a feladatokat aszinkron módon kell elvégeznie, ha az alkalmazásnak rugalmasnak kell maradnia a felhasználó számára. Szinkron I/O-műveletek esetén a felhasználói felületi szál le lesz tiltva, amíg az erőforrás-igényes művelet be nem fejeződik. A Windows 8.x Áruházbeli alkalmazások fejlesztésekor használjon aszinkron I/O-műveleteket, hogy megakadályozza az alkalmazás működésének leállását.
Az aszinkron tagok nevében szerepel a Async, például a CopyToAsync, FlushAsync, ReadAsync és WriteAsync metódusoknál. Ezeket a metódusokat a async és await kulcsszavakkal használhatja.
További információ: Aszinkron fájl I/O.
Tömörítés
A tömörítés a fájlok tárolási méretének csökkentésére vonatkozik. A tömörítés a tömörített fájlok tartalmának kinyerésének folyamata, így azok használható formátumban vannak. A System.IO.Compression névtér fájlokat és adatfolyamokat tömörítő és kicsomagoló típusokat tartalmaz.
A következő osztályokat gyakran használják fájlok és streamek tömörítéséhez és kibontásához:
ZipArchive – bejegyzések létrehozására és beolvasására a zip archívumban.
ZipArchiveEntry – tömörített fájl ábrázolása.
ZipFile – tömörített csomag létrehozásához, kinyeréséhez és megnyitásához.
ZipFileExtensions – bejegyzések tömörített csomagban való létrehozásához és kinyeréshez.
DeflateStream – streamek tömörítéséhez és kicsomagolásához a Deflate algoritmus használatával.
GZipStream – a streamek gzip-adatformátumban történő tömörítéséhez és kitömörítéséhez.
Lásd : Fájlok tömörítése és kinyerés.
Izolált tárolás
Az izolált tárolás olyan adattárolási mechanizmus, amely a kód mentett adatokkal való társításának szabványosított módjaival biztosítja az elkülönítést és a biztonságot. A tároló egy olyan virtuális fájlrendszert biztosít, amelyet a felhasználó, a szerelvény és (opcionálisan) a tartomány elkülönít. Az izolált tárolás különösen akkor hasznos, ha az alkalmazás nem rendelkezik jogosultsággal a felhasználói fájlok elérésére. Az alkalmazás beállításait vagy fájljait a számítógép biztonsági szabályzata által szabályozott módon mentheti.
Az elkülönített tároló nem érhető el Windows 8.x Áruházbeli alkalmazásokhoz; ehelyett használjon alkalmazásadatosztályokat a Windows.Storage névtérben. További információ: Alkalmazásadatok.
Az izolált tárolás megvalósításakor gyakran a következő osztályokat használják:
IsolatedStorage – biztosítja az elkülönített tárolók implementációinak alaposztályát.
IsolatedStorageFile – egy elkülönített tárterületet biztosít, amely fájlokat és könyvtárakat tartalmaz.
IsolatedStorageFileStream - elérhetővé tesz egy fájlt az elkülönített tárolóban.
Lásd: Izolált tároló.
I/O-műveletek Windows Áruházbeli alkalmazásokban
A Windows 8.x Áruházbeli alkalmazásokhoz készült .NET-alkalmazások számos típust tartalmaznak az olvasáshoz és a streamekhez való íráshoz; ez a készlet azonban nem tartalmazza az összes .NET I/O-típust.
Néhány fontos különbség az I/O-műveletek Windows 8.x Áruházbeli alkalmazásokban való használatakor:
A kifejezetten fájlműveletekhez kapcsolódó típusok, például Filea FileInfo . Directoryés DirectoryInfoa . nem szerepelnek a .NET for Windows 8.x Store-alkalmazásokban. Ehelyett használja a Windows.Storage Windows futtatókörnyezet névterében található típusokat, például StorageFile és StorageFolder.
Az elkülönített tároló nem érhető el; ehelyett használja az alkalmazásadatokat.
A felhasználói felületi szál blokkolásának megakadályozásához használjon aszinkron metódusokat, például ReadAsync és WriteAsync.
Az elérésiút-alapú tömörítési típusok ZipFileZipFileExtensions nem érhetők el. Ehelyett használja a névtérben lévő Windows.Storage.Compression típusokat.
Szükség esetén átválthat a .NET-keretrendszer streamjei és a Windows futtatókörnyezeti streamek között. További információért tekintse meg a Hogyan konvertáljunk a .NET-keretrendszer streamjei és a Windows futtatókörnyezeti streamek között vagy WindowsRuntimeStreamExtensions.
A Windows 8.x Áruházbeli alkalmazások I/O-műveleteivel kapcsolatos további információkért tekintse meg a fájlok olvasását és írását ismertető rövid útmutatót.
I/O és biztonság
Ha a System.IO névtérben lévő osztályokat használja, az operációs rendszer biztonsági követelményeit, például a hozzáférés-vezérlési listákat (ACL-eket) kell követnie a fájlokhoz és könyvtárakhoz való hozzáférés szabályozásához. Ez a követelmény az összes FileIOPermission követelményen felül szerepel. Az ACL-ek programozott módon kezelhetők. További információ : Hozzáférés-vezérlési listabejegyzések hozzáadása vagy eltávolítása.
Az alapértelmezett biztonsági házirendek megakadályozzák, hogy az internetes vagy intranetes alkalmazások hozzáférjenek a felhasználó számítógépén lévő fájlokhoz. Ezért ne használja azokat az I/O-osztályokat, amelyek az interneten vagy intraneten letöltött kód írásakor fizikai fájl elérési útját igénylik. Ehelyett használjon elkülönített tárolót .NET-alkalmazásokhoz.
A rendszer csak a stream létrehozásakor végez biztonsági ellenőrzést. Ezért ne nyisson meg egy streamet, majd adja át a kevésbé megbízható kódnak vagy alkalmazástartományoknak.
Kapcsolódó témakörök
Gyakori I/O-feladatok
Felsorolja a fájlokhoz, könyvtárakhoz és streamekhez társított I/O-feladatokat, valamint az egyes tevékenységekhez kapcsolódó tartalmakra és példákra mutató hivatkozásokat.Aszinkron fájl I/O
Az aszinkron I/O teljesítménybeli előnyeit és alapvető működését ismerteti.Izolált tárolás
Egy olyan adattárolási mechanizmust ismertet, amely a kód mentett adatokkal való társításának szabványosított módjaival biztosítja az elkülönítést és a biztonságot.csövek
A névtelen és elnevezett csőműveleteket ismerteti a .NET-ben.Memory-Mapped fájlok
A memórialeképezett fájlokat ismerteti, amelyek a virtuális memóriában lévő lemezen lévő fájlok tartalmát tartalmazzák. A memórialeképezett fájlok segítségével nagy méretű fájlokat szerkeszthet, és megosztott memóriát hozhat létre a folyamatközi kommunikációhoz.