13,009
回編集
(→使用例) |
(→使用例) |
||
828行目: | 828行目: | ||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||
public partial class MainWindow : Window | |||
{ | { | ||
public | public MainWindow() | ||
{ | { | ||
InitializeComponent(); | |||
} | |||
private void InitializeComponent() | |||
{ | |||
AvaloniaXamlLoader.Load(this); | |||
} | |||
// 保存ボタンを押下 | |||
public async void OnSaveButtonClicked(object sender, RoutedEventArgs e) | |||
{ | |||
try | |||
{ | { | ||
string content = "Hello, directory."; // 保存する内容 | |||
string savedFilePath = await ShowSaveFileDialogAsync(); | |||
if (!string.IsNullOrEmpty(savedFilePath)) | |||
{ | { | ||
Console.WriteLine(" | await SaveFileAsync(savedFilePath, content); | ||
Console.WriteLine("成功", $"ファイルを正常に保存: {savedFilePath}"); | |||
} | } | ||
} | } | ||
catch (Exception ex) | |||
{ | |||
Console.WriteLine("エラー", $"ファイルの保存中にエラーが発生: {ex.Message}"); | |||
} | |||
} | |||
// ファイル保存ダイアログを表示して、選択されたファイルパスを返す | |||
private async Task<string> ShowSaveFileDialogAsync() | |||
{ | |||
var saveFileDialog = new SaveFileDialog(); | |||
// ダイアログのタイトル | |||
saveFileDialog.Title = "ファイルを保存"; | |||
// .txtファイルのフィルタを追加 | |||
saveFileDialog.Filters.Add(new FileDialogFilter { Name = "テキストファイル", Extensions = { "txt" } }); | |||
string result = await saveFileDialog.ShowAsync(this); | |||
return result; | |||
} | |||
// 指定されたパスにファイルを非同期で保存 | |||
private async Task SaveFileAsync(string filePath, string content) | |||
{ | |||
await File.WriteAllTextAsync(filePath, content); | |||
} | } | ||
} | } |