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.
Toto téma popisuje, co potřebujete vědět, abyste mohli začít číst a zapisovat do souborů v aplikaci pro Univerzální platformu Windows (UPW). Zavádějí se hlavní rozhraní API a typy a odkazy, které vám pomůžou získat další informace.
Nejedná se o kurz. Pokud chcete kurz, přečtěte si téma Vytvoření, zápis a čtení souboru , který kromě předvedení, jak vytvořit, číst a zapisovat soubor, ukazuje, jak používat vyrovnávací paměti a datové proudy. Může vás také zajímat ukázka přístupu k souboru , která ukazuje, jak vytvořit, číst, zapisovat, kopírovat a odstranit soubor a jak načíst vlastnosti souboru a zapamatovat si soubor nebo složku, aby k němu vaše aplikace mohla znovu získat přístup.
Podíváme se na kód pro zápis a čtení textu ze souboru a na to, jak získat přístup k místním, roamingovým a dočasným složkám aplikace.
Co potřebujete vědět
Tady jsou hlavní typy, které potřebujete vědět o čtení nebo zápisu textu ze souboru nebo do souboru:
Soubor Windows.Storage.StorageFile představuje soubor. Tato třída má vlastnosti, které poskytují informace o souboru a metody pro vytváření, otevírání, kopírování, odstraňování a přejmenování souborů. Můžete být zvyklí na práci s řetězcovými cestami. Existují některá rozhraní API prostředí Windows Runtime, která používají řetězec cesty, ale častěji použijete StorageFile k reprezentaci souboru, protože některé soubory, se kterými pracujete v UWP, nemusí mít cestu nebo mohou mít nepraktickou cestu. Pomocí
StorageFile.GetFileFromPathAsync() převeďte cestu řetězce naStorageFile . Třída FileIO poskytuje snadný způsob čtení a zápisu textu. Tato třída může také číst a zapisovat pole bajtů nebo obsah vyrovnávací paměti. Tato třída je velmi podobná třídě PathIO . Hlavní rozdíl spočívá v tom, že místo PathIO, který používá řetězcovou cestu, přijímá StorageFile.
Windows.Storage.StorageFolder představuje složku (adresář). Tato třída obsahuje metody pro vytváření souborů, dotazování na obsah složky, vytváření, přejmenování a odstraňování složek a vlastností, které poskytují informace o složce.
Mezi běžné způsoby získání StorageFolder patří:
- Windows.Storage.Pickers.FolderPicker , který uživateli umožňuje přejít do složky, kterou chce použít.
- Windows.Storage.ApplicationData.Current, která poskytuje StorageFolder specifickou pro jednu z aplikačních složek, jako jsou místní, roamingové a dočasné složky.
- Windows.Storage.KnownFolders, která poskytuje StorageFolder pro známé knihovny, jako Hudba nebo Obrázky.
Zápis textu do souboru
V tomto úvodu se zaměříme na jednoduchý scénář: čtení a psaní textu. Začněme tím, že se podíváme na kód, který používá třídu FileIO k zápisu textu do souboru.
Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile file = await storageFolder.CreateFileAsync("test.txt",
Windows.Storage.CreationCollisionOption.OpenIfExists);
await Windows.Storage.FileIO.WriteTextAsync(file, "Example of writing a string\r\n");
// Append a list of strings, one per line, to the file
var listOfStrings = new List<string> { "line1", "line2", "line3" };
await Windows.Storage.FileIO.AppendLinesAsync(file, listOfStrings); // each entry in the list is written to the file on its own line.
Nejprve identifikujeme, kde se má soubor nacházet.
Windows.Storage.ApplicationData.Current.LocalFolder
poskytuje přístup k místní datové složce, která se vytvoří pro vaši aplikaci při instalaci.
Viz Přístup k souborovému systému pro podrobnosti o složkách, které vaše aplikace může přistupovat.
Pak použijeme StorageFolder k vytvoření souboru (nebo ho otevřete, pokud už existuje).
Třída FileIO poskytuje pohodlný způsob zápisu textu do souboru.
FileIO.WriteTextAsync()
nahradí celý obsah souboru zadaným textem.
FileIO.AppendLinesAsync()
připojuje kolekci řetězců k souboru a zapisuje jeden řetězec na řádek.
Čtení textu ze souboru
Stejně jako při zápisu souboru začíná čtení souboru zadáním umístění souboru. Použijeme stejné umístění jako v předchozím příkladu. Pak použijeme Třídu FileIO ke čtení jejího obsahu.
Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile file = await storageFolder.GetFileAsync("test.txt");
string text = await Windows.Storage.FileIO.ReadTextAsync(file);
Můžete také načíst každý řádek souboru do samostatných řetězců v kolekci pomocí IList<string> contents = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);
.
Přístup k systému souborů
Na platformě UPW je přístup ke složce omezený, aby se zajistila integrita a ochrana osobních údajů dat uživatele.
Složky aplikací
Když je aplikace pro UPW nainstalovaná, vytvoří se několik složek v části c:\users<uživatelské jméno>\AppData\Local\Packages<identifikátor> balíčku aplikace pro ukládání, mimo jiné místní, roamingové a dočasné soubory aplikace. Aplikace nemusí deklarovat žádné možnosti pro přístup k těmto složkám a tyto složky nejsou přístupné jinými aplikacemi. Tyto složky se také odeberou při odinstalaci aplikace.
Toto jsou některé z složek aplikací, které běžně používáte:
LocalState: Pro data místní pro aktuální zařízení. Při zálohování zařízení se data v tomto adresáři uloží do záložní image na OneDrivu. Pokud uživatel zařízení resetuje nebo nahradí, data se obnoví. Přistupte k této složce pomocí
Windows.Storage.ApplicationData.Current.LocalFolder.
. Uložte místní data, která nechcete zálohovat na OneDrive, do LocalCacheFolder, ke kterému můžete přistupovat pomocíWindows.Storage.ApplicationData.Current.LocalCacheFolder
.RoamingState: Data uložená tady už nepřebíhají (od Windows 11), ale složka je stále dostupná. Přistupovat ke složce roamingu pomocí
Windows.Storage.ApplicationData.Current.RoamingFolder
. Doporučená náhrada je Azure App Service. Služba Azure App Service je široce podporovaná, dobře zdokumentovaná, spolehlivá a podporuje scénáře napříč platformami nebo mezi ekosystémy, jako jsou iOS, Android a web.TempState: Pro data, která se můžou odstranit, když není aplikace spuštěna. Přistupovat k této složce pomocí
Windows.Storage.ApplicationData.Current.TemporaryFolder
.
Přístup ke zbytku systému souborů
Aplikace pro UPW musí deklarovat svůj záměr pro přístup ke konkrétní uživatelské knihovně přidáním odpovídající funkce do manifestu. Po instalaci aplikace se uživateli zobrazí výzva k ověření, že autorizuje přístup k zadané knihovně. Pokud ne, aplikace se nenainstaluje. Existují možnosti přístupu k obrázkům, videím a hudebním knihovnám. Úplný seznam najdete v deklaraci funkcí aplikace . Pokud chcete získat StorageFolder pro tyto knihovny, použijte třídu Windows.Storage.KnownFolders.
Knihovna dokumentů
I když existuje možnost přístupu ke knihovně dokumentů uživatele, tato schopnost je omezená, což znamená, že aplikace, která ji deklaruje, bude odmítnuta Microsoft Storem, pokud nebudete postupovat podle procesu pro získání speciálního schválení. Není určen pro obecné použití. Místo toho použijte nástroje pro výběr souborů nebo složek (viz Otevření souborů a složek s výběrem a uložení souboru s výběrem), které uživateli umožňují přejít do složky nebo souboru. Když uživatel přejde do složky nebo souboru, implicitně mu udělí oprávnění pro přístup k aplikaci a systém povolí přístup.
Obecný přístup
Aplikace může také deklarovat omezené široce schopností v manifestu, což také vyžaduje schválení Microsoft Storu. Aplikace pak má přístup k libovolnému souboru, ke kterému má uživatel přístup, aniž by vyžadovala zásah výběru souboru nebo složky.
Úplný seznam umístění, ke kterým mají aplikace přístup, najdete v tématu Oprávnění k přístupu k souborům.
Užitečná rozhraní API a dokumentace
Tady je stručný přehled rozhraní API a další užitečné dokumentace, které vám pomůžou začít se soubory a složkami.
Užitečná rozhraní API
API (rozhraní pro programování aplikací) | Popis |
---|---|
Windows.Storage.StorageFile | Poskytuje informace o souboru a metodách pro vytváření, otevírání, kopírování, odstraňování a přejmenování souborů. |
Windows.Storage.StorageFolder | Poskytuje informace o složce, metodách vytváření souborů a metodách pro vytváření, přejmenování a odstraňování složek. |
Funkce FileIO | Poskytuje snadný způsob čtení a zápisu textu. Tato třída může také číst a zapisovat pole bajtů nebo obsah vyrovnávací paměti. |
PathIO | Poskytuje snadný způsob, jak číst a zapisovat text ze souboru a do souboru podle cesty k souboru ve formě řetězce. Tato třída může také číst a zapisovat pole bajtů nebo obsah vyrovnávací paměti. |
DataReader & DataWriter | Číst a zapisovat buffery, bajty, celá čísla, identifikátory GUID, časové intervaly a další, z/do datového proudu. |
Windows.Storage.ApplicationData.Current | Poskytuje přístup ke složkám vytvořeným pro aplikaci, jako je místní složka, roamingová složka a dočasná složka souborů. |
Windows.Storage.Pickers.FolderPicker | Umožňuje uživateli zvolit složku a vrátit StorageFolder pro tuto složku. Tímto způsobem získáte přístup k umístěním, ke kterým aplikace ve výchozím nastavení nemá přístup. |
Windows.Storage.Pickers.FileOpenPicker | Umožňuje uživateli zvolit soubor, který se má otevřít a vrátit pro něj soubor StorageFile . Tímto způsobem získáte přístup k souboru, ke kterému aplikace ve výchozím nastavení nemá přístup. |
Windows.Storage.Pickers.FileSavePicker | Umožňuje uživateli zvolit název souboru, příponu a umístění úložiště pro soubor. Vrátí StorageFile. Takto uložíte soubor do umístění, ke kterému aplikace ve výchozím nastavení nemá přístup. |
obor názvů Windows.Storage.Streams | Zahrnuje čtení a zápis datových proudů. Konkrétně se podívejte na třídy DataReader a DataWriter, které čtou a zapisují vyrovnávací paměť, bajty, celá čísla, identifikátory GUID, TimeSpany a další. |
Užitečné dokumenty
Téma | Popis |
---|---|
obor názvů Windows.Storage | Referenční dokumentace k rozhraní API |
Soubory, složky a knihovny | Koncepční dokumentace |
Vytvořte, napište a čtěte soubor | Popisuje vytváření, čtení a zápis textu, binárních dat a datových proudů. |
Začínáme s místním ukládáním dat aplikací | Kromě pokrytí osvědčených postupů pro ukládání místních dat se vztahuje na účel složky LocalSettings a LocalCache. |
Uložení a načtení nastavení a dalších dat aplikace | Poskytuje přehled různých úložišť dat aplikací, jako jsou místní, roamingové a dočasné složky. |
Přístupová oprávnění k souborům | Informace o tom, ke kterým umístěním systému souborů má vaše aplikace přístup. |
Otevřít soubory a složky pomocí nástroje pro výběr | Ukazuje, jak získat přístup k souborům a složkám tím, že umožníte uživateli rozhodnout se prostřednictvím uživatelského rozhraní pro výběr. |
Windows.Storage.Streams | Typy používané ke čtení a zápisu datových proudů. |
Soubory a složky v knihovnách Hudba, Obrázky a Videa | Popisuje, jak odebrat složky z knihoven, získat seznam složek v knihovně a zjistit uložené fotky, hudbu a videa. |
Užitečné ukázky kódu
Ukázka kódu | Popis |
---|---|
Ukázka dat aplikace | Ukazuje, jak ukládat a načítat data specifická pro každého uživatele pomocí rozhraní API pro data aplikací. |
Ukázka přístupu k souborům | Ukazuje, jak vytvořit, číst, zapisovat, kopírovat a odstraňovat soubor. |
Ukázka výběru souboru | Ukazuje, jak získat přístup k souborům a složkám tak, že necháte uživatele vybrat pomocí uživatelského rozhraní a jak uložit soubor, aby uživatel mohl zadat název, typ souboru a umístění souboru, který chcete uložit. |
ukázkové JSON | Ukazuje, jak kódovat a dekódovat objekty JSON (JavaScript Object Notation), pole, řetězce, čísla a logické hodnoty pomocí obor názvů Windows.Data.Json. |
Další ukázky kódu | V rozevíracím seznamu kategorií zvolte Soubory, složky a knihovny . |