前回に引き続き、今回もファイルの保存について見ていきます。
前回までのコードは以下の通りです。
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:
コメント