Quickstart: Temporary app data (XAML)
Learn how to store and retrieve files from the temporary app data store.
Roadmap: How does this topic relate to others? See:
- Roadmap for Windows Runtime apps using C# or Visual Basic
- Roadmap for Windows Runtime apps using C++
Get the container for the app's files
Use the ApplicationData.TemporaryFolder property to get the files. The next steps use the temporaryFolder variable from this step.
Write data to a file
Use the file APIs, such as Windows.Storage.StorageFolder.CreateFileAsync and Windows.Storage.FileIO.WriteTextAsync, to create and update a file in the temporary app data store. This example creates a file named dataFile.txt in the temporaryFolder container and writes the current date and time to the file. The ReplaceExisting value from the CreationCollisionOption enumeration indicates to replace the file if it already exists.
void MainPage::WriteTimestamp() { concurrency::task<StorageFile^> fileOperation = temporaryFolder->CreateFileAsync("dataFile.txt", CreateCollisionOption::ReplaceExisting); fileOperation.then([this](StorageFile^ sampleFile) { auto calendar = ref new Calendar; auto now = calendar->ToDateTime(); auto formatter = ref new Windows::Globalization::DateTimeFormatting::DateTimeFormatter("longtime"); return FileIO::WriteTextAsync(sampleFile, formatter->Format(now)); }).then([this](task<void> previousOperation) { try { previousOperation.get(); } catch (Platform::Exception^) { // Timestamp not written } }); }
Read data from a file
Use the file APIs, such as Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync, and Windows.Storage.FileIO.ReadTextAsync, to open and read a file in the temporary app data store. This example opens the dataFile.txt file created in the previous step and reads the date from the file. For details on loading file resources from various locations see How to load file resources.
void MainPage::ReadTimestamp() { concurrency::task<StorageFile^> getFileOperation(temporaryFolder->GetFileAsync("dataFile.txt")); getFileOperation.then([this](StorageFile^ file) { return FileIO::ReadTextAsync(file); }).then([this](concurrency::task<String^> previousOperation) { String^ timestamp; try { timestamp = previousOperation.get(); // Data is contained in timestamp } catch (...) { // Timestamp not found } }); }
Related topics
- Tasks
- How to load file resources
- Quickstart: Local app data
- Quickstart: Roaming app data
- Conceptual
- Accessing app data with the Windows Runtime
- Reference
- Windows.Storage.ApplicationData
- Windows.Storage.ApplicationDataCompositeValue
- Windows.Storage.ApplicationDataContainer
- Windows.Storage.ApplicationDataContainerSettings
- Samples
- Application data sample