Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vstupně-výstupní operace souborů a datových proudů (vstup/výstup) odkazují na přenos dat do nebo z úložného média. V .NET System.IO obory názvů obsahují typy, které umožňují čtení a zápis synchronně i asynchronně u datových proudů a souborů. Tyto obory názvů také obsahují typy, které provádějí kompresi a dekomprimaci souborů, a typy, které umožňují komunikaci prostřednictvím kanálů a sériových portů.
Soubor je seřazená a pojmenovaná kolekce bajtů s trvalým úložištěm. Při práci se soubory pracujete s cestami k adresáři, diskovým úložištěm a názvy souborů a adresářů. Naproti tomu stream je posloupnost bajtů, ze kterých můžete číst a zapisovat do záložního úložiště, což může být jedno z několika úložných médií (například disky nebo paměť). Stejně jako existuje několik úložišť zálohování jiných než disků, existuje několik druhů datových proudů jiných než datových proudů souborů, jako jsou sítě, paměť a datové proudy kanálu.
Soubory a adresáře
Typy v System.IO oboru názvů můžete použít k interakci se soubory a adresáři. Můžete například získat a nastavit vlastnosti pro soubory a adresáře a načíst kolekce souborů a adresářů na základě kritérií hledání.
Zásady vytváření názvů cest a způsoby vyjádření cesty k souborům pro systémy Windows, včetně syntaxe zařízení DOS podporované v .NET Core 1.1 a novějších a .NET Framework 4.6.2 a novějších, najdete v tématech Formáty cest k souborům v systémech Windows.
Tady jsou některé běžně používané třídy souborů a adresářů:
File – poskytuje statické metody pro vytváření, kopírování, odstraňování, přesouvání a otevírání souborů a pomáhá vytvářet FileStream objekt.
FileInfo – poskytuje metody instance pro vytváření, kopírování, odstraňování, přesouvání a otevírání souborů a pomáhá vytvořit FileStream objekt.
Directory – poskytuje statické metody pro vytváření, přesouvání a výčet adresářů a podadresářů.
DirectoryInfo – poskytuje metody instancí pro vytváření, přesouvání a výčet adresářů a podadresářů.
Path – poskytuje metody a vlastnosti pro zpracování řetězců adresáře napříč platformami.
Při volání metod systému souborů byste měli vždy poskytovat robustní zpracování výjimek. Další informace naleznete v tématu Zpracování vstupně-výstupních chyb.
Kromě použití těchto tříd mohou uživatelé jazyka Visual Basic používat metody a vlastnosti poskytované Microsoft.VisualBasic.FileIO.FileSystem třídou pro vstupně-výstupní operace souboru.
Viz Postupy: Kopírování adresářů, Postupy: Vytvoření výpisu adresáře a postupy: Vytvoření výčtu adresářů a souborů.
Streamy
Abstraktní základní třída Stream podporuje čtení a zápis bajtů. Všechny třídy, které představují datové proudy dědí z Stream třídy. Třída Stream a jeho odvozené třídy poskytují společný pohled na zdroje dat a úložiště a izolovat programátora od konkrétních podrobností operačního systému a podkladových zařízení.
Streamy zahrnují tři základní operace:
Čtení – přenos dat z datového proudu do datové struktury, například pole bajtů.
Zápis – proces přenosu dat ze zdroje do datového proudu.
Hledání – dotazování a úprava aktuální pozice v rámci datového proudu.
V závislosti na podkladovém zdroji nebo úložišti dat může datový proud podporovat pouze některé z těchto funkcí. Třída například PipeStream nepodporuje vyhledávání. CanRead, CanWritea CanSeek vlastnosti datového proudu určují operace, které datový proud podporuje.
Tady jsou některé běžně používané třídy datových proudů:
FileStream – pro čtení a zápis do souboru.
IsolatedStorageFileStream – pro čtení a zápis do souboru v izolovaném úložišti.
MemoryStream – pro čtení a zápis do paměti jako záložní úložiště.
BufferedStream – pro zlepšení výkonu operací čtení a zápisu.
NetworkStream – pro čtení a zápis přes síťové sokety.
PipeStream – pro čtení a zápis dat přes anonymní a pojmenované roury.
CryptoStream – pro propojení datových proudů s kryptografickými transformacemi.
Příklad asynchronní práce s datovými proudy najdete v tématu Asynchronní vstupně-výstupní operace souboru.
Čtenáři a spisovatelé
Obor System.IO názvů také poskytuje typy pro čtení kódovaných znaků z datových proudů a jejich zápis do datových proudů. Datové proudy jsou obvykle navržené pro bajtové vstupy a výstupy. Typy čtečky a zapisovače zajišťují převod kódovaných znaků do bajtů a z bajtů tak, aby datový proud mohl operaci dokončit. Každá třída čtenáře a zapisovače je přidružena ke streamu, který lze načíst prostřednictvím vlastnosti třídy BaseStream .
Tady jsou některé běžně používané třídy pro čtení a zápis:
BinaryReader a BinaryWriter – pro čtení a zápis primitivních datových typů jako binárních hodnot.
StreamReader a StreamWriter – pro čtení a zápis znaků pomocí kódovací hodnoty pro převod znaků na bajty a z bajtů.
StringReader a StringWriter – pro čtení a zápis znaků do a z řetězců.
TextReader a TextWriter – slouží jako abstraktní základní třídy pro ostatní čtenáře a zapisovače, které čtou a zapisují znaky a řetězce, ale ne binární data.
Viz Postupy: Čtení textu ze souboru, Postupy: Zápis textu do souboru, Postupy: Čtení znaků z řetězce a Postupy: Zápis znaků do řetězce.
Asynchronní vstupně-výstupní operace
Čtení nebo zápis velkého množství dat může být náročné na prostředky. Tyto úlohy byste měli provádět asynchronně, pokud vaše aplikace potřebuje reagovat na uživatele. Při synchronních vstupně-výstupních operacích se vlákno uživatelského rozhraní zablokuje, dokud se operace náročná na prostředky nedokončí. Při vývoji aplikací pro Windows 8.x Store používejte asynchronní vstupně-výstupní operace, abyste zabránili vytvoření dojem, že aplikace přestala fungovat.
Asynchronní členy obsahují Async ve svých názvech, například CopyToAsync, FlushAsync, ReadAsync a WriteAsync metody. Tyto metody použijete s klíčovými slovy async a await.
Další informace naleznete v tématu Asynchronní vstupně-výstupní operace souboru.
Komprese
Komprese odkazuje na proces zmenšení velikosti souboru pro úložiště. Dekomprese je proces extrahování obsahu komprimovaného souboru tak, aby byly v použitelném formátu. Obor System.IO.Compression názvů obsahuje typy pro komprimaci a dekompresi souborů a datových proudů.
Při komprimaci a dekompresi souborů a datových proudů se často používají následující třídy:
ZipArchive – pro vytváření a načítání položek v archivu ZIP.
ZipArchiveEntry – pro reprezentaci komprimovaného souboru.
ZipFile – pro vytváření, extrahování a otevírání komprimovaného balíčku.
ZipFileExtensions – pro vytváření a extrahování položek v komprimovaném balíčku.
DeflateStream – pro komprimaci a dekompresi datových proudů pomocí algoritmu Deflate.
GZipStream – pro komprimaci a dekompresi datových proudů ve formátu gzip.
Viz Postupy: Komprese a extrahování souborů.
Izolované úložiště
Izolované úložiště je mechanismus úložiště dat, který poskytuje izolaci a bezpečnost definováním standardizovaných způsobů přidružení kódu k uloženým datům. Úložiště poskytuje virtuální systém souborů, který je izolovaný uživatelem, sestavením a (volitelně) doménou. Izolované úložiště je zvlášť užitečné, když vaše aplikace nemá oprávnění pro přístup k uživatelským souborům. Nastavení nebo soubory pro aplikaci můžete uložit způsobem, který řídí zásady zabezpečení počítače.
Izolované úložiště není dostupné pro aplikace pro Windows 8.x Store; místo toho použijte datové třídy aplikace v Windows.Storage oboru názvů. Další informace najdete v tématu Data aplikace.
Při implementaci izolovaného úložiště se často používají následující třídy:
IsolatedStorage – poskytuje základní třídu pro implementace izolovaného úložiště.
IsolatedStorageFile – poskytuje izolovanou oblast úložiště, která obsahuje soubory a adresáře.
IsolatedStorageFileStream – zveřejňuje soubor v izolovaném úložišti.
Viz Izolované úložiště.
Vstupně-výstupní operace v aplikacích pro Windows Store
.NET pro aplikace pro Windows 8.x Store obsahuje mnoho typů pro čtení a zápis do datových proudů; Tato sada však neobsahuje všechny vstupně-výstupní typy .NET.
Některé důležité rozdíly při používání vstupně-výstupních operací v aplikacích pro Windows 8.x Store:
Typy specificky související s operacemi souborů, jako jsou File, FileInfo, Directory a DirectoryInfo, nejsou zahrnuty v rozhraní .NET pro aplikace Windows Store pro Windows 8.x. Místo toho použijte typy v Windows.Storage oboru názvů prostředí Windows Runtime, například StorageFile a StorageFolder.
Izolované úložiště není k dispozici; místo toho použijte data aplikace.
Pokud chcete zabránit blokování vlákna uživatelského rozhraní, použijte asynchronní metody, například ReadAsync a WriteAsync.
Typy komprese založené na cestě ZipFile a ZipFileExtensions nejsou k dispozici. Místo toho použijte typy v Windows.Storage.Compression oboru názvů.
V případě potřeby můžete převést mezi datovými proudy rozhraní .NET Framework a datovými proudy prostředí Windows Runtime. Další informace naleznete v tématu Postupy: Převod mezi datovými proudy rozhraní .NET Framework a streamy prostředí Windows Runtime nebo WindowsRuntimeStreamExtensions.
Další informace o vstupně-výstupních operacích v aplikaci pro Windows 8.x Store najdete v tématu Rychlý start: Čtení a zápis souborů.
Vstupně-výstupní operace a zabezpečení
Pokud používáte třídy v System.IO oboru názvů, musíte dodržovat požadavky na zabezpečení operačního systému, jako jsou seznamy řízení přístupu (ACL), abyste mohli řídit přístup k souborům a adresářům. Tento požadavek je doplňkový k jakýmkoli FileIOPermission požadavkům. Seznamy ACL můžete spravovat prostřednictvím kódu programu. Další informace naleznete v tématu Postupy: Přidání nebo odebrání položek seznamu řízení přístupu.
Výchozí zásady zabezpečení brání internetovým nebo intranetovým aplikacím v přístupu k souborům v počítači uživatele. Proto při psaní kódu, který se stáhne přes internet nebo intranet, nepoužívejte třídy vstupně-výstupních operací, které vyžadují cestu k fyzickému souboru. Místo toho použijte izolované úložiště pro aplikace .NET.
Kontrola zabezpečení se provádí pouze při vytváření datového proudu. Proto neotevřete datový proud a pak ho předejte méně důvěryhodnému kódu nebo doménám aplikace.
Související témata
Běžné vstupně-výstupní úlohy
Poskytuje seznam vstupně-výstupních úkolů přidružených k souborům, adresářům a datovým proudům a odkazy na relevantní obsah a příklady pro každý úkol.Vstupně-výstupní operace asynchronního souboru
Popisuje výhody výkonu a základní provoz asynchronních vstupně-výstupních operací.Izolované úložiště
Popisuje mechanismus úložiště dat, který poskytuje izolaci a bezpečnost definováním standardizovaných způsobů přidružení kódu k uloženým datům.Potrubí
Popisuje anonymní a pojmenované operace kanálu v .NET.souboryMemory-Mapped
Popisuje soubory mapované do paměti, které obsahují obsah souborů na disku ve virtuální paměti. Soubory mapované do paměti můžete použít k úpravě velmi velkých souborů a k vytvoření sdílené paměti pro komunikaci mezi procesy.