Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
API ApplicationData yang dijelaskan dalam artikel ini dirancang untuk aplikasi paket. Aplikasi yang tidak dikemas tidak memiliki akses ke penyimpanan data aplikasi yang dikelola sistem dan harus menggunakan mekanisme penyimpanan alternatif seperti I/O file langsung atau akses registri.
Data aplikasi adalah data yang dapat diubah yang dibuat dan dikelola oleh aplikasi tertentu. Ini termasuk status runtime, pengaturan aplikasi, preferensi pengguna, konten referensi (seperti definisi kamus dalam aplikasi kamus), dan pengaturan lainnya. Data aplikasi berbeda dari data pengguna, data yang dibuat dan dikelola pengguna saat menggunakan aplikasi. Data pengguna mencakup file dokumen atau media, transkrip email atau komunikasi, atau rekaman database yang menyimpan konten yang dibuat oleh pengguna. Data pengguna mungkin berguna atau bermakna bagi lebih dari satu aplikasi. Seringkali, ini adalah data yang ingin dimanipulasi atau ditransmisikan pengguna sebagai entitas yang independen dari aplikasi itu sendiri, seperti dokumen.
Catatan penting tentang data aplikasi: Masa pakai data aplikasi terkait dengan masa pakai aplikasi. Jika aplikasi dihapus, semua data aplikasi akan hilang sebagai konsekuensinya. Jangan gunakan data aplikasi untuk menyimpan data pengguna atau apa pun yang mungkin dianggap berharga dan tidak tergantikan oleh pengguna. Kami menyarankan agar pustaka dan Microsoft OneDrive pengguna digunakan untuk menyimpan informasi semacam ini. Data aplikasi sangat ideal untuk menyimpan preferensi, pengaturan, dan favorit pengguna khusus aplikasi.
Jenis data aplikasi
Ada dua jenis data aplikasi: pengaturan dan file.
Settings
Gunakan pengaturan untuk menyimpan preferensi pengguna dan info status aplikasi. API data aplikasi memungkinkan Anda membuat dan mengambil pengaturan dengan mudah (kami akan menunjukkan beberapa contoh nanti di artikel ini).
Berikut adalah jenis data yang dapat Anda gunakan untuk pengaturan aplikasi:
- UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double
- Boolean
- Char16, String
-
DateTime, TimeSpan
- Untuk C#/.NET, gunakan: System.DateTimeOffset, System.TimeSpan
- GUID, Point, Size, Rect
- ApplicationDataCompositeValue: Serangkaian pengaturan aplikasi terkait yang harus diserialisasikan dan dideserialisasi secara atomik. Gunakan pengaturan komposit untuk menangani pembaruan atom pengaturan yang saling bergantung dengan mudah. Sistem memastikan integritas pengaturan komposit selama akses dan roaming bersamaan. Pengaturan komposit dioptimalkan untuk sejumlah kecil data, dan performa bisa buruk jika Anda menggunakannya untuk himpunan data besar.
Files
Gunakan file untuk menyimpan data biner atau untuk mengaktifkan jenis serial anda sendiri yang dikustomisasi.
Menyimpan data aplikasi di penyimpanan data aplikasi
Saat aplikasi diinstal, sistem memberinya penyimpanan data per pengguna sendiri untuk pengaturan dan file. Anda tidak perlu tahu di mana atau bagaimana data ini ada, karena sistem bertanggung jawab untuk mengelola penyimpanan fisik, memastikan bahwa data disimpan terisolasi dari aplikasi lain dan pengguna lain. Sistem umumnya mempertahankan konten penyimpanan data ini saat pengguna menginstal pembaruan ke aplikasi Anda, meskipun RoamingSettings mungkin tidak bertahan melalui pembaruan Microsoft Store (lihat data Roaming). Untuk pengaturan yang harus bertahan dari pembaruan aplikasi, gunakan LocalSettings. Sistem menghapus konten penyimpanan data ini sepenuhnya dan bersih saat aplikasi Anda dihapus instalasinya.
Dalam penyimpanan data aplikasinya, setiap aplikasi memiliki direktori akar yang ditentukan sistem: satu untuk file lokal, satu untuk file roaming, dan satu untuk file sementara. Aplikasi Anda dapat menambahkan file baru dan kontainer baru ke masing-masing direktori akar ini.
Data aplikasi lokal
Data aplikasi lokal harus digunakan untuk informasi yang perlu disimpan antara sesi aplikasi dan tidak sesuai untuk data aplikasi roaming. Data yang tidak berlaku di perangkat lain juga harus disimpan di sini. Tidak ada batasan ukuran umum pada data lokal yang disimpan. Gunakan penyimpanan data aplikasi lokal untuk data yang tidak masuk akal untuk menjelajah dan untuk himpunan data besar. Data aplikasi lokal dengan andal bertahan melalui pembaruan aplikasi, menjadikan LocalSettings sebagai pilihan yang direkomendasikan untuk preferensi pengguna dan status aplikasi yang harus bertahan melalui pembaruan Microsoft Store.
Ambil penyimpanan data aplikasi lokal
Sebelum dapat membaca atau menulis data aplikasi lokal, Anda harus mengambil penyimpanan data aplikasi lokal. Untuk mengambil penyimpanan data aplikasi lokal, gunakan properti ApplicationData.LocalSettings untuk mendapatkan pengaturan lokal aplikasi sebagai objek ApplicationDataContainer. Gunakan properti ApplicationData.LocalFolder untuk mendapatkan file dalam objek StorageFolder. Gunakan properti ApplicationData.LocalCacheFolder untuk mendapatkan folder di penyimpanan data aplikasi lokal tempat Anda dapat menyimpan file yang tidak disertakan dalam pencadangan dan pemulihan.
Windows.Storage.ApplicationDataContainer localSettings =
Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
Membuat dan mendapatkan pengaturan lokal sederhana
Untuk membuat atau menulis pengaturan, gunakan properti ApplicationDataContainer.Values untuk mengakses pengaturan dalam localSettings kontainer yang kita dapatkan di langkah sebelumnya. Contoh ini membuat pengaturan bernama exampleSetting.
// Simple setting
localSettings.Values["exampleSetting"] = "Hello Windows";
Untuk mengambil pengaturan, Anda menggunakan properti ApplicationDataContainer.Values yang sama dengan yang Anda gunakan untuk membuat pengaturan. Contoh ini menunjukkan cara mengambil pengaturan yang baru saja kita buat.
// Simple setting
Object value = localSettings.Values["exampleSetting"];
Menciptakan dan mengakses nilai komposit lokal
Untuk membuat atau menulis nilai komposit, buat objek ApplicationDataCompositeValue. Contoh ini membuat pengaturan komposit bernama exampleCompositeSetting dan menambahkannya ke localSettings kontainer.
// Composite setting
Windows.Storage.ApplicationDataCompositeValue composite =
new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
localSettings.Values["exampleCompositeSetting"] = composite;
Contoh ini menunjukkan cara mengambil nilai komposit yang baru saja kita buat.
// 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"]
}
Membuat dan membaca file lokal
Untuk membuat dan memperbarui file di penyimpanan data aplikasi lokal, gunakan API file, seperti Windows. Storage.StorageFolder.CreateFileAsync dan Windows. Storage.FileIO.WriteTextAsync. Contoh ini membuat file bernama dataFile.txt dalam localFolder kontainer dan menulis tanggal dan waktu saat ini ke file. Nilai ReplaceExisting dari CreationCollisionOption enumerasi menunjukkan untuk mengganti file jika sudah ada.
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));
}
Untuk membuka dan membaca file di penyimpanan data aplikasi lokal, gunakan API file, seperti Windows. Storage.StorageFolder.GetFileAsync, Windows. Storage.StorageFile.GetFileFromApplicationUriAsync, dan Windows. Storage.FileIO.ReadTextAsync. Contoh ini membuka file yang dataFile.txt dibuat pada langkah sebelumnya dan membaca tanggal dari file. Untuk detail tentang memuat sumber daya file dari berbagai lokasi, lihat Cara memuat sumber daya file.
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
}
}
Data roaming
Peringatan
Data dan pengaturan roaming tidak lagi didukung pada Windows 11. Penggantian yang disarankan adalah Azure App Service. Azure App Service didukung secara luas, terdokumen dengan baik, andal, dan mendukung skenario lintas platform/lintas ekosistem seperti iOS, Android, dan web.
Penting
Data RoamingSettings mungkin tidak bertahan melalui pembaruan aplikasi Microsoft Store bahkan pada Windows 10. Untuk pengaturan yang harus bertahan dari pembaruan aplikasi, gunakan LocalSettings sebagai gantinya.
Data aplikasi sementara
Penyimpanan data aplikasi sementara berfungsi seperti cache. File-filenya tidak berkeliaran dan dapat dihapus kapan saja. Tugas Pemeliharaan Sistem dapat secara otomatis menghapus data yang disimpan di lokasi ini kapan saja. Pengguna juga dapat menghapus file dari penyimpanan data sementara menggunakan Pembersihan Disk. Data aplikasi sementara dapat digunakan untuk menyimpan informasi sementara selama sesi aplikasi. Tidak ada jaminan bahwa data ini akan bertahan di luar akhir sesi aplikasi karena sistem mungkin mengklaim kembali ruang yang digunakan jika diperlukan. Lokasi tersedia melalui properti temporaryFolder .
Mengambil kontainer data sementara
Gunakan properti ApplicationData.TemporaryFolder untuk mendapatkan file. Langkah berikutnya menggunakan temporaryFolder variabel dari langkah ini.
Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder;
Membuat dan membaca file sementara
Untuk membuat dan memperbarui file di penyimpanan data aplikasi sementara, gunakan API file, seperti Windows. Storage.StorageFolder.CreateFileAsync dan Windows. Storage.FileIO.WriteTextAsync. Contoh ini membuat file bernama dataFile.txt dalam temporaryFolder kontainer dan menulis tanggal dan waktu saat ini ke file. Nilai ReplaceExisting dari CreationCollisionOption enumerasi menunjukkan untuk mengganti file jika sudah ada.
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));
}
Untuk membuka dan membaca file di penyimpanan data aplikasi sementara, gunakan API file, seperti Windows. Storage.StorageFolder.GetFileAsync, Windows. Storage.StorageFile.GetFileFromApplicationUriAsync, dan Windows. Storage.FileIO.ReadTextAsync. Contoh ini membuka file yang dataFile.txt dibuat pada langkah sebelumnya dan membaca tanggal dari file. Untuk detail tentang memuat sumber daya file dari berbagai lokasi, lihat Cara memuat sumber daya file.
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
}
}
Mengatur data aplikasi dengan kontainer
Untuk membantu Anda mengatur pengaturan dan file data aplikasi, Anda membuat kontainer (diwakili oleh ApplicationDataContainer objek) alih-alih bekerja langsung dengan direktori. Anda dapat menambahkan kontainer ke penyimpanan data aplikasi lokal, roaming, dan sementara. Kontainer dapat disarangkan hingga 32 tingkat kedalaman.
Untuk membuat kontainer pengaturan, panggil metode ApplicationDataContainer.CreateContainer . Contoh ini membuat kontainer pengaturan lokal bernama exampleContainer dan menambahkan pengaturan bernama exampleSetting. Nilai Always dari enumerasi ApplicationDataCreateDisposition menunjukkan bahwa kontainer dibuat jika belum ada.
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";
}
Menghapus pengaturan dan kontainer aplikasi
Untuk menghapus pengaturan sederhana yang tidak lagi dibutuhkan aplikasi Anda, gunakan metode ApplicationDataContainerSettings.Remove . Contoh ini menghapus exampleSetting pengaturan lokal yang kami buat sebelumnya.
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");
Untuk menghapus pengaturan komposit, gunakan metode ApplicationDataCompositeValue.Remove . Contoh ini menghapus pengaturan komposit lokal exampleCompositeSetting yang kita buat dalam contoh sebelumnya.
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");
Untuk menghapus kontainer, panggil metode ApplicationDataContainer.DeleteContainer . Contoh ini menghapus kontainer pengaturan lokal exampleContainer yang kami buat sebelumnya.
Windows.Storage.ApplicationDataContainer localSettings =
Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
// Delete container
localSettings.DeleteContainer("exampleContainer");
Membuat versi data aplikasi Anda
Anda dapat secara opsional membuat versi data aplikasi untuk aplikasi Anda. Ini akan memungkinkan Anda membuat versi aplikasi mendatang yang mengubah format data aplikasinya tanpa menyebabkan masalah kompatibilitas dengan versi aplikasi Anda sebelumnya. Aplikasi memeriksa versi data aplikasi di penyimpanan data, dan jika versinya kurang dari versi yang diharapkan aplikasi, aplikasi harus memperbarui data aplikasi ke format baru dan memperbarui versi. Untuk informasi selengkapnya, lihat properti ApplicationData.Version dan metode ApplicationData.SetVersionAsync .
Artikel terkait
Windows developer