Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu, Evrensel Windows Platformu (UWP) uygulamasındaki dosyaları okumaya ve yazmaya başlamak için bilmeniz gerekenleri kapsar. Ana API'ler ve türler tanıtılır ve daha fazla bilgi edinmenize yardımcı olacak bağlantılar sağlanır.
Bu bir öğretici değildir. Öğretici istiyorsanız bkz. Dosya oluşturma, yazma ve okuma. Bu kaynak, dosya oluşturma, okuma ve yazma işlemlerine ek olarak arabelleklerin ve akışların nasıl kullanılacağını da gösterir. Ayrıca, dosya oluşturma, okuma, yazma, kopyalama ve silmenin yanı sıra uygulamanızın yeniden kolayca erişebilmesi için dosya özelliklerini alma ve bir dosya veya klasörü anımsama adımlarını gösteren Dosya erişim örneği ilginizi çekebilir.
Bir dosyadan metin yazmak ve okumak için koda ve uygulamanın yerel, dolaşım ve geçici klasörlerine nasıl erişebileceğimize bakacağız.
Bilmeniz gerekenler
Bir dosyadan/dosyaya metin okumak veya yazmak için bilmeniz gereken ana türler şunlardır:
Windows.Storage.StorageFile bir dosyayı temsil eder. Bu sınıf dosya hakkında bilgi sağlayan özelliklere ve dosyaları oluşturma, açma, kopyalama, silme ve yeniden adlandırma yöntemlerine sahiptir. Dize yollarıyla ilgilenmeye alışık olabilirsiniz. Bazı Windows Çalışma Zamanı API'leri bir dizi yolu alır, ancak daha sık, UWP'de çalıştığınız bazı dosyaların yolu olmayabileceği veya hantallaşmış bir yolu olabileceği için bir dosyayı temsil etmek amacıyla StorageFile kullanırsınız. Bir metin yolunu StorageFile'e dönüştürmek için StorageFile.GetFileFromPathAsync() kullanın.
FileIO sınıfı, metin okumak ve yazmak için kolay bir yol sağlar. Bu sınıf ayrıca bir bayt dizisini veya bir arabelleğin içeriğini okuyabilir/yazabilir. Bu sınıf , PathIO sınıfına çok benzer. Temel fark, PathIO'
gibi bir dize yolu almak yerine StorageFile almasıdır.Windows.Storage.StorageFolder bir klasörü (dizin) temsil eder. Bu sınıfta dosya oluşturma, klasörün içeriğini sorgulama, klasör oluşturma, yeniden adlandırma ve silme yöntemleri ve klasör hakkında bilgi sağlayan özellikler bulunur.
StorageFolder edinmenin yaygın yolları şunlardır:
- Kullanıcının kullanmak istediği klasöre gitmesine olanak tanıyan Windows.Storage.Pickers.FolderPicker.
- Uygulamaya yerel olan yerel, dolaşım ve geçici klasörler gibi klasörlerden birine özgü olan StorageFolder'ı sağlayan Windows.Storage.ApplicationData.Current.
- Windows.Storage.KnownFolders, Müzik veya Resim kitaplıkları gibi bilinen kütüphaneler için StorageFolder sağlar.
Dosyaya metin yazma
Bu giriş için basit bir senaryoya odaklanacağız: metin okuma ve yazma. Dosyaya metin yazmak için FileIO sınıfını kullanan bazı kodlara bakarak başlayalım.
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.
Öncelikle dosyanın nerede bulunması gerektiğini belirleriz.
Windows.Storage.ApplicationData.Current.LocalFolder , yüklendiğinde uygulamanız için oluşturulan yerel veri klasörüne erişim sağlar.
Uygulamanızın erişebileceği klasörler hakkında ayrıntılı bilgi için bkz. Dosya sistemine erişme.
Ardından, dosyayı oluşturmak için StorageFolder'ı kullanırız (veya zaten varsa açarız).
FileIO sınıfı, dosyaya metin yazmak için kullanışlı bir yol sağlar.
FileIO.WriteTextAsync() , dosyanın tüm içeriğini sağlanan metinle değiştirir.
FileIO.AppendLinesAsync() dosyaya bir dize koleksiyonu ekler; satır başına bir dize yazar.
Dosyadan metin okuma
Dosya yazarken olduğu gibi, dosyayı okumak da dosyanın bulunduğu yeri belirtmeyle başlar. Yukarıdaki örnektekiyle aynı konumu kullanacağız. Ardından içeriğini okumak için FileIO sınıfını kullanacağız.
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);
Ayrıca dosyanın her satırını bir koleksiyonda her biri ayrı bir dize olarak okuyabilirsiniz IList<string> contents = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);
Dosya sistemine erişme
UWP platformunda, kullanıcı verilerinin bütünlüğünü ve gizliliğini sağlamak için klasör erişimi kısıtlanır.
Uygulama klasörleri
Bir UWP uygulaması yüklendiğinde, depolamak için c:\users<kullanıcı adı>\AppData\Local\Packages<uygulama paketi tanımlayıcısı>\ altında uygulamanın yerel, dolaşım ve geçici dosyaları gibi çeşitli klasörler oluşturulur. Uygulamanın bu klasörlere erişmek için herhangi bir özellik bildirmesi gerekmez ve bu klasörlere diğer uygulamalar tarafından erişilemez. Uygulama kaldırıldığında bu klasörler de kaldırılır.
Yaygın olarak kullanacağınız uygulama klasörlerinden bazıları şunlardır:
LocalState: Geçerli cihaza ait yerel veriler için. Cihaz yedeklendiğinde, bu dizindeki veriler OneDrive'daki bir yedekleme görüntüsüne kaydedilir. Kullanıcı cihazı sıfırlarsa veya değiştirirse veriler geri yüklenir. Bu klasöre
Windows.Storage.ApplicationData.Current.LocalFolder.ile erişin. OneDrive'a yedeklenmemesini istediğiniz yerel verileri, ile erişebileceğinizWindows.Storage.ApplicationData.Current.LocalCacheFolderiçinde kaydedin.RoamingState: Burada depolanan veriler artık dolaşımda değildir (Windows 11 itibarıyla) ancak klasör hala kullanılabilir durumdadır. Dolaşım klasörüne
Windows.Storage.ApplicationData.Current.RoamingFolderile erişin. Önerilen değişiklik Azure App Service. Azure App Service yaygın olarak desteklenir, iyi belgelenmiş, güvenilirdir ve iOS, Android ve web gibi platformlar arası/ekosistemler arası senaryoları destekler.TempState: Uygulama çalışmadığında silinebilecek veriler için. Bu klasöre
Windows.Storage.ApplicationData.Current.TemporaryFolderile erişin.
Dosya sisteminin geri kalanına erişme
UWP uygulaması, bildirimine ilgili özelliği ekleyerek belirli bir kullanıcı kitaplığına erişme amacını bildirmelidir. Daha sonra uygulama yüklendiğinde kullanıcıdan belirtilen kitaplığa erişme yetkisine sahip olduğunu doğrulaması istenir. Aksi takdirde uygulama yüklenmez. Resimlere, videolara ve müzik kitaplıklarına erişme özellikleri vardır. Tam liste için bkz. Uygulama özelliği bildirimi . Bu kitaplıklar için bir StorageFolder almak için Windows.Storage.KnownFolders sınıfını kullanın.
Belge kitaplığı
Kullanıcının belge kitaplığına erişme özelliği olsa da, bu özellik kısıtlanmıştır; bu da, özel onay almak için bir işlem izlemediğiniz sürece bunu bildiren bir uygulamanın Microsoft Store tarafından reddedileceği anlamına gelir. Genel kullanıma yönelik değildir. Bunun yerine, kullanıcının klasöre veya dosyaya gitmesine izin veren dosya veya klasör seçicilerini kullanın (bkz. Seçiciyle dosya ve klasör açma ve Seçiciyle dosya kaydetme). Kullanıcı bir klasöre veya dosyaya gittiği zaman, uygulamaya erişim iznini örtük olarak vermiş olur ve sistem erişime izin verir.
Genel erişim
Alternatif olarak, uygulamanız bildiriminde kısıtlı broadFileSystem özelliğini bildirebilir ve bu da Microsoft Store onayı gerektirir. Ardından uygulama, bir dosya veya klasör seçicinin müdahalesine gerek kalmadan kullanıcının erişimi olan herhangi bir dosyaya erişebilir.
Uygulamaların erişebileceği konumların kapsamlı bir listesi için bkz. Dosya erişim izinleri.
Yararlı API'ler ve belgeler
Burada, dosya ve klasörlerle çalışmaya başlamanıza yardımcı olmak için API'lerin ve diğer yararlı belgelerin hızlı bir özeti verilmiştir.
Yararlı API'ler
| Uygulama Programlama Arayüzü (API) | Açıklama |
|---|---|
| Windows.Storage.StorageFile |
Dosya hakkında bilgi ve dosyaları oluşturma, açma, kopyalama, silme ve yeniden adlandırma yöntemleri sağlar. |
| Windows.Storage.StorageFolder |
Klasör, dosya oluşturma yöntemleri ve klasörleri oluşturma, yeniden adlandırma ve silme yöntemleri hakkında bilgi sağlar. |
| FileIO | Metin okumak ve yazmak için kolay bir yol sağlar. Bu sınıf ayrıca bir bayt dizisini veya bir arabelleğin içeriğini okuyabilir/yazabilir. |
| PathIO | Dosya için dize yolu verilen bir dosyadan/dosyaya metin okuma/yazmanın kolay bir yolunu sağlar. Bu sınıf ayrıca bir bayt dizisini veya bir arabelleğin içeriğini okuyabilir/yazabilir. |
| DataReader ve DataWriter | Bir akıştan okuma ve bir akışa yazma işlemleri için arabellekleri, baytları, tamsayıları, GUID'leri, süreleri ve daha fazlasını okuyup yazın. |
| Windows.Storage.ApplicationData.Current |
Uygulama için oluşturulan yerel klasör, dolaşım klasörü ve geçici dosyalar klasörü gibi klasörlere erişim sağlar. |
| Windows.Storage.Pickers.FolderPicker | Kullanıcının bir klasör seçmesine izin verir ve klasör için bir StorageFolder döndürür. Uygulamanın varsayılan olarak erişemeyen konumlara bu şekilde erişebilirsiniz. |
| Windows.Storage.Pickers.FileOpenPicker |
Kullanıcının açmak üzere bir dosya seçmesine izin verir ve bu dosya için bir StorageFile döndürür. Uygulamanın varsayılan olarak erişebildiği bir dosyaya bu şekilde erişebilirsiniz. |
| Windows.Storage.Pickers.FileSavePicker | Kullanıcının bir dosya için dosya adını, uzantıyı ve depolama konumunu seçmesine izin verir. StorageFile'i döndürür. Bu, bir dosyayı uygulamanın varsayılan olarak erişemeyen bir konuma kaydetme yöntemidir. |
| Windows.Storage.Streams ad alanı | Okuma ve yazma akışlarını kapsar. Özellikle, arabellekleri, baytları, tamsayıları, GUID'leri, zaman aralıklarını ve daha fazlasını okuyan ve yazan DataReader ve DataWriter sınıflarını inceleyin. |
Yararlı belgeler
| Konu | Açıklama |
|---|---|
| Windows.Storage Ad Alanı |
API başvuru belgeleri. |
| dosyalar, klasörler ve kitaplıklar |
Kavramsal belgeler. |
| dosya oluşturma, yazma ve okuma |
Metin, ikili veri ve akış oluşturma, okuma ve yazma işlemleri kapsar. |
| Uygulama verilerini yerel olarak depolamaya başlama | Yerel verileri kaydetmeye yönelik en iyi yöntemlerin yanı sıra LocalSettings ve LocalCache klasörünün amacını da kapsar. |
| Ayarları ve diğer uygulama verilerini depolama ve alma | Yerel, dolaşım ve geçici klasörler gibi çeşitli uygulama veri depolarına genel bir bakış sağlar. |
| Dosya erişim izinleri | Uygulamanızın erişebileceği dosya sistemi konumları hakkında bilgiler. |
| Seçici ile dosya ve klasörleri açma | Kullanıcının seçici kullanıcı arabirimi aracılığıyla karar vermesine izin vererek dosya ve klasörlere nasıl erişeceklerini gösterir. |
| Windows.Storage.Streams | Akışları okumak ve yazmak için kullanılan türler. |
| Müzik, Resimler ve Videolar kitaplıklarındaki dosya ve klasörleri |
Kitaplıklardan klasörleri kaldırmayı, kitaplıktaki klasörlerin listesini almayı ve depolanan fotoğrafları, müzikleri ve videoları keşfetmeyi kapsar. |
Yararlı kod örnekleri
| Kod örneği | Açıklama |
|---|---|
| Uygulama verileri örneği | Uygulama veri API'lerini kullanarak her kullanıcıya özgü verilerin nasıl depolanıp alındığını gösterir. |
| Dosya erişimi örneği | Dosya oluşturma, okuma, yazma, kopyalama ve silme adımlarını gösterir. |
| Dosya Seçici Örneği | Kullanıcının kullanıcı arabirimiyle bunları seçmesine izin vererek dosya ve klasörlere nasıl erişileceğini ve kullanıcının kaydedilecek dosyanın adını, dosya türünü ve konumunu belirtebilmesi için bir dosyanın nasıl kaydedileceğini gösterir. |
| JSON örneği | Windows.Data.Json ad alanıkullanarak JavaScript Nesne Gösterimi (JSON) nesnelerini, dizilerini, dizelerini, sayılarını ve boole'lerini kodlamayı ve kodunu çözmeyi gösterir. |
| Ek kod örnekleri | Seçin Dosyalar, klasör ve kitaplıklar kategori açılır listesinden. |