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.
Önemli
Bu makalede açıklanan ApplicationData API'leri paketlenmiş uygulamalar için tasarlanmıştır. Paketlenmemiş uygulamaların sistem tarafından yönetilen uygulama veri depolarına erişimi yoktur ve doğrudan dosya G/Ç veya kayıt defteri erişimi gibi alternatif depolama mekanizmaları kullanmalıdır.
Uygulama verileri , belirli bir uygulama tarafından oluşturulan ve yönetilen değiştirilebilir verilerdir. Çalışma zamanı durumu, uygulama ayarları, kullanıcı tercihleri, başvuru içeriği (sözlük uygulamasındaki sözlük tanımları gibi) ve diğer ayarları içerir. Uygulama verileri, kullanıcının uygulama kullanırken oluşturduğu ve yönettiği kullanıcı verilerinden farklıdır. Kullanıcı verileri belge veya medya dosyalarını, e-posta veya iletişim transkriptlerini ya da kullanıcı tarafından oluşturulan içeriği barındıran veritabanı kayıtlarını içerir. Kullanıcı verileri birden fazla uygulama için yararlı veya anlamlı olabilir. Bu veriler genellikle kullanıcının uygulamanın kendisinden bağımsız bir varlık (belge gibi) olarak işlemek veya iletmek istediği verilerdir.
Uygulama verileri hakkında önemli not: Uygulama verilerinin ömrü, uygulamanın ömrüne bağlıdır. Uygulama kaldırılırsa, sonuç olarak tüm uygulama verileri kaybolur. Kullanıcı verilerini veya kullanıcıların değerli ve yeri doldurulamaz olarak algılanabilecek herhangi bir şeyi depolamak için uygulama verilerini kullanmayın. Bu tür bilgileri depolamak için kullanıcının kitaplıklarının ve Microsoft OneDrive kullanılmasını öneririz. Uygulama verileri uygulamaya özgü kullanıcı tercihlerini, ayarlarını ve sık kullanılanları depolamak için idealdir.
Uygulama verisi türleri
İki tür uygulama verisi vardır: ayarlar ve dosyalar.
Settings
Kullanıcı tercihlerini ve uygulama durumu bilgilerini depolamak için ayarları kullanın. Uygulama verileri API'si, ayarları kolayca oluşturmanıza ve almanıza olanak tanır (bu makalenin devamında size bazı örnekler göstereceğiz).
Uygulama ayarları için kullanabileceğiniz veri türleri şunlardır:
- UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double
- Boolean
- Char16, Dize
-
DateTime, TimeSpan
- C#/.NET için şunu kullanın: System.DateTimeOffset, System.TimeSpan
- GUID, Point, Size, Rect
- ApplicationDataCompositeValue: Atomik olarak seri hale getirilip seri durumdan çıkarılması gereken ilgili uygulama ayarları kümesi. Birbirine bağlı ayarların atomik güncelleştirmelerini kolayca işlemek için bileşik ayarları kullanın. Sistem, eşzamanlı erişim ve dolaşım sırasında bileşik ayarların bütünlüğünü sağlar. Bileşik ayarlar az miktarda veri için iyileştirilmiştir ve bunları büyük veri kümeleri için kullanırsanız performans düşük olabilir.
Dosyalar
İkili verileri depolamak veya kendi özelleştirilmiş serileştirilmiş türlerinizi etkinleştirmek için dosyaları kullanın.
Uygulama verilerini uygulama veri depolarında depolama
Bir uygulama yüklendiğinde sistem, ayarlar ve dosyalar için kullanıcı başına kendi veri depolarını verir. Fiziksel depolamayı yönetmekten ve verilerin diğer uygulamalardan ve diğer kullanıcılardan yalıtılmasını sağlamak sistem tarafından sorumlu olduğundan, bu verilerin nerede veya nasıl var olduğunu bilmeniz gerekmez. Kullanıcı uygulamanıza bir güncelleştirme yüklediğinde sistem genellikle bu veri depolarının içeriğini korur, ancak RoamingSettings Microsoft Store güncelleştirmeleri aracılığıyla kalıcı olmayabilir (bkz. Roaming data). Uygulama güncellemeleri karşısında korunması gereken ayarlar için LocalSettings'i kullanın. Sistem, uygulamanız kaldırıldığında bu veri depolarının içeriğini tamamen ve temiz bir şekilde kaldırır.
Uygulama veri deposunda her uygulamanın sistem tanımlı kök dizinleri vardır: biri yerel dosyalar, biri gezici dosyalar ve biri geçici dosyalar için. Uygulamanız bu kök dizinlerin her birine yeni dosyalar ve yeni kapsayıcılar ekleyebilir.
Yerel uygulama verileri
Yerel uygulama verileri, uygulama oturumları arasında korunması gereken ve gezici uygulama verileri için uygun olmayan tüm bilgiler için kullanılmalıdır. Diğer cihazlarda geçerli olmayan veriler de burada depolanmalıdır. Depolanan yerel verilerde genel boyut kısıtlaması yoktur. Dolaşımda anlamlı olmayan veriler ve büyük veri kümeleri için yerel uygulama veri depolarını kullanın. Yerel uygulama verileri, uygulama güncelleştirmeleri aracılığıyla güvenilir bir şekilde kalıcı hale getirildiğinden LocalSettings, Microsoft Store güncelleştirmelerde kalması gereken kullanıcı tercihleri ve uygulama durumu için önerilen seçenektir.
Yerel uygulama veri depounu alma
Yerel uygulama verilerini okuyabilmeniz veya yazabilmeniz için önce yerel uygulama veri depolarını almanız gerekir. Yerel uygulama veri depolarını almak için ApplicationData.LocalSettings özelliğini kullanarak uygulamanın yerel ayarlarını ApplicationDataContainer nesnesi olarak alın. dosyaları StorageFolder nesnesine almak için ApplicationData.LocalFolder özelliğini kullanın. Yerel uygulama veri deposunda yedekleme ve geri yükleme işlemine dahil olmayan dosyaları kaydedebileceğiniz klasörü almak için ApplicationData.LocalCacheFolder özelliğini kullanın.
Windows.Storage.ApplicationDataContainer localSettings =
Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
Basit bir yerel ayar oluşturun ve alın
Ayar oluşturmak veya yazmak için ApplicationDataContainer.Values özelliğini kullanarak önceki adımda aldığımız kapsayıcıdaki localSettings ayarlara erişin. Bu örnek adlı exampleSettingbir ayar oluşturur.
// Simple setting
localSettings.Values["exampleSetting"] = "Hello Windows";
Ayarı almak için, ayarı oluşturmak için kullandığınız ApplicationDataContainer.Values özelliğini kullanırsınız. Bu örnek, yeni oluşturduğumuz ayarın nasıl alınduğunu gösterir.
// Simple setting
Object value = localSettings.Values["exampleSetting"];
Bir yerel bileşik değeri oluştur ve al
Bileşik değer oluşturmak veya yazmak için bir ApplicationDataCompositeValue nesnesi oluşturun. Bu örnek, exampleCompositeSetting adlı bileşik bir ayarı oluşturur ve ardından bunu localSettings kapsayıcısına ekler.
// Composite setting
Windows.Storage.ApplicationDataCompositeValue composite =
new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
localSettings.Values["exampleCompositeSetting"] = composite;
Bu örnek, yeni oluşturduğumuz bileşik değerin nasıl alınduğunu gösterir.
// Composite setting
Windows.Storage.ApplicationDataCompositeValue composite =
(Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];
if (composite == null)
{
// No data
}
else
{
// Access data in composite["intVal"] and composite["strVal"]
}
Yerel dosya oluşturma ve okuma
Yerel uygulama veri deposunda dosya oluşturmak ve güncelleştirmek için Windows gibi dosya API'lerini kullanın. Storage.StorageFolder.CreateFileAsync ve Windows. Storage.FileIO.WriteTextAsync. Bu örnek, kapsayıcıda dataFile.txt adlı localFolder bir dosya oluşturur ve geçerli tarih ve saati dosyaya yazar.
CreationCollisionOption numaralandırmasından alınan ReplaceExisting değeri, zaten varsa dosyanın değiştirilmesini gösterir.
async void WriteTimestamp()
{
Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter =
new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt",
CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}
Yerel uygulama veri deposunda bir dosyayı açmak ve okumak için Windows gibi dosya API'lerini kullanın. Storage.StorageFolder.GetFileAsync, Windows. Storage.StorageFile.GetFileFromApplicationUriAsync ve Windows. Storage.FileIO.ReadTextAsync. Bu örnek, önceki adımda oluşturulan dosyayı açar dataFile.txt ve dosyadan tarihi okur. Çeşitli konumlardan dosya kaynaklarını yükleme hakkında ayrıntılı bilgi için bkz. Dosya kaynaklarını yükleme.
async void ReadTimestamp()
{
try
{
StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
String timestamp = await FileIO.ReadTextAsync(sampleFile);
// Data is contained in timestamp
}
catch (Exception)
{
// Timestamp not found
}
}
Dolaşım verileri
Uyarı
Dolaşım verileri ve ayarları Windows 11 itibarıyla daha uzun süre desteklenmez. Önerilen değiştirme Azure App Service olarak önerilmektedir. Azure App Service yaygın olarak desteklenir, iyi belgelenmiş, güvenilirdir ve iOS, Android ve web gibi platformlar arası/ekosistemler arası senaryoları destekler.
Önemli
RoamingSettings verileri, Windows 10'da bile Microsoft Store uygulama güncelleştirmeleri aracılığıyla kalıcı olmayabilir. Uygulama güncelleştirmelerinin devam etmesi gereken ayarlar için bunun yerine LocalSettings'i kullanın.
Geçici uygulama verileri
Geçici uygulama veri deposu önbellek gibi çalışır. Dosyaları dolaşıma alınmaz ve herhangi bir zamanda kaldırılabilir. Sistem Bakımı görevi, bu konumda depolanan verileri istediğiniz zaman otomatik olarak silebilir. Kullanıcı, Disk Temizleme'yi kullanarak geçici veri deposundaki dosyaları da temizleyebilir. Geçici uygulama verileri, uygulama oturumu sırasında geçici bilgileri depolamak için kullanılabilir. Sistem gerekirse kullanılan alanı geri kazanabileceğinden bu verilerin uygulama oturumunun sonundan sonra kalıcı olacağının garantisi yoktur. Konum , temporaryFolder özelliği aracılığıyla kullanılabilir.
Geçici veri kapsayıcısını alma
Dosyaları almak için ApplicationData.TemporaryFolder özelliğini kullanın. Sonraki adımlarda bu adımdaki temporaryFolder değişken kullanılır.
Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder;
Geçici dosyalar oluşturma ve okuma
Geçici uygulama veri deposunda dosya oluşturmak ve güncelleştirmek için Windows gibi dosya API'lerini kullanın. Storage.StorageFolder.CreateFileAsync ve Windows. Storage.FileIO.WriteTextAsync. Bu örnek, kapsayıcıda dataFile.txt adlı temporaryFolder bir dosya oluşturur ve geçerli tarih ve saati dosyaya yazar.
CreationCollisionOption numaralandırmasından alınan ReplaceExisting değeri, zaten varsa dosyanın değiştirilmesini gösterir.
async void WriteTimestamp()
{
Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter =
new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
StorageFile sampleFile = await temporaryFolder.CreateFileAsync("dataFile.txt",
CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}
Geçici uygulama veri deposunda bir dosyayı açmak ve okumak için Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync ve Windows.Storage.FileIO.ReadTextAsync gibi dosya API'lerini kullanın. Bu örnek, önceki adımda oluşturulan dosyayı açar dataFile.txt ve dosyadan tarihi okur. Çeşitli konumlardan dosya kaynaklarını yükleme hakkında ayrıntılı bilgi için bkz. Dosya kaynaklarını yükleme.
async void ReadTimestamp()
{
try
{
StorageFile sampleFile = await temporaryFolder.GetFileAsync("dataFile.txt");
String timestamp = await FileIO.ReadTextAsync(sampleFile);
// Data is contained in timestamp
}
catch (Exception)
{
// Timestamp not found
}
}
Uygulama verilerini kapsayıcılarla düzenleyin
Uygulama veri ayarlarınızı ve dosyalarınızı düzenlemenize yardımcı olmak için doğrudan dizinlerle çalışmak yerine kapsayıcılar oluşturursunuz (ApplicationDataContainer nesneleriyle temsil edilir). Yerel, dolaşım ve geçici uygulama veri depolarına kapsayıcılar ekleyebilirsiniz. Kapsayıcılar 32 düzeye kadar iç içe yerleştirilebilir.
Ayarlar kapsayıcısı oluşturmak için ApplicationDataContainer.CreateContainer yöntemini çağırın. Bu örnek adlı exampleContainer bir yerel ayarlar kapsayıcısı oluşturur ve adlı exampleSettingbir ayar ekler.
ApplicationDataCreateDisposition numaralandırmasındaki Always değeri, kapsayıcının henüz yoksa oluşturulacağını belirtir.
Windows.Storage.ApplicationDataContainer localSettings =
Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
// Setting in a container
Windows.Storage.ApplicationDataContainer container =
localSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);
if (localSettings.Containers.ContainsKey("exampleContainer"))
{
localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";
}
Uygulama ayarlarını ve kapsayıcıları silme
Uygulamanızın artık ihtiyaç duyduğu basit bir ayarı silmek için ApplicationDataContainerSettings.Remove yöntemini kullanın. Bu örnek, exampleSetting daha önce oluşturduğumuz yerel ayarı siler.
Windows.Storage.ApplicationDataContainer localSettings =
Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
// Delete simple setting
localSettings.Values.Remove("exampleSetting");
Bileşik ayarı silmek için ApplicationDataCompositeValue.Remove yöntemini kullanın. Bu örnek, önceki bir örnekte oluşturduğumuz yerel exampleCompositeSetting bileşik ayarı siler.
Windows.Storage.ApplicationDataContainer localSettings =
Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
// Delete composite setting
localSettings.Values.Remove("exampleCompositeSetting");
Kapsayıcıyı silmek için ApplicationDataContainer.DeleteContainer yöntemini çağırın. Bu örnek, daha önce oluşturduğumuz yerel exampleContainer ayarlar kapsayıcısını siler.
Windows.Storage.ApplicationDataContainer localSettings =
Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
// Delete container
localSettings.DeleteContainer("exampleContainer");
Uygulama verilerinizi sürüm oluşturma
İsteğe bağlı olarak uygulamanızın uygulama verilerinin sürümünü oluşturabilirsiniz. Bu, uygulamanızın önceki sürümünde uyumluluk sorunlarına neden olmadan uygulama verilerinin biçimini değiştiren gelecekteki bir sürümünü oluşturmanıza olanak tanır. Uygulama, veri deposundaki uygulama verilerinin sürümünü denetler ve sürüm uygulamanın beklediği sürümden küçükse, uygulama verilerini yeni biçime güncelleştirmeli ve sürümü güncelleştirmelidir. Daha fazla bilgi için bkz. ApplicationData.Version özelliği ve ApplicationData.SetVersionAsync yöntemi.
İlgili makaleler
Windows developer