前回に引き続き、今回もファイルの保存について見ていきます。
前回までのコードは以下の通りです。
private async void btnSave_Click(object sender, RoutedEventArgs e) { var filePicker = new Windows.Storage.Pickers.FileSavePicker(); // ユーザーが保存する場所 filePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary; // 拡張子の種類を追加 filePicker.FileTypeChoices.Add("テキストファイル", new List<string>() { ".txt" }); filePicker.FileTypeChoices.Add("リッチテキストファイル", new List<string>() { ".rtf" }); // ファイル名の候補 filePicker.SuggestedFileName = "新しいドキュメント"; // 名前を付けて保存ダイアログを表示 Windows.Storage.StorageFile file = await filePicker.PickSaveFileAsync(); if (file != null) { await Windows.Storage.FileIO.WriteTextAsync(file, textBox.Text); } }
今回は、WriteTextAsyncメソッドでファイル保存命令を実行後、ファイル保存ができたかを確認する処理を追加します。
ファイルが保存できたかどうかを確認するにはCachedFileManager.CompleteUpdatesAsyncメソッドを使用します。
このメソッドの引数には、名前を付けて保存ダイアログの戻り値を渡します。
ファイルが正常に保存できた場合は、CachedFileManager.CompleteUpdatesAsyncメソッドはWindows.Storage.Provider.FileUpdateStatus.Completeを返します。よってif文で状態を確認し、正常に保存できた場合の処理、保存に失敗したい場合の処理を記述できるようになります。
コード例を以下に示します。
Windows.Storage.Provider.FileUpdateStatus status = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file); if (status == Windows.Storage.Provider.FileUpdateStatus.Complete) { // 正常に保存された場合の処理 } else { // 保存できなかった場合の処理 }
Please follow and like us:
コメント