【解決したいこと】
作成したメモ帳を指定したディレクトリに保存し、その場所に保存されているか確認したい。
しかし、指定したディレクトリにファイルが保存されていない。
【質問内容】
VisualC#でwindowsアプリ『メモ帳』を作成しております。
F6キーで名前をつけて保存ダイアログを出力して、指定したディレクトリにファイルを保存し、そのファイルが保存されているか確認をしようとしています。
「名前をつけて保存」ダイアログボックスの表示は、「SaveFileDioalogクラス」を使っています。
**アプリを起動し、F6キーで名前を付けてCドライブ直下に保存しましたが、ファイルは保存されていませんでした。
加えて、試しにディレクトリを変更【C:\Users\Owner\Desktop】してみましたが、保存されておりませんでした。
**
以下が作成したソースコードです。
指定した場所にファイルを置きたいのですが、以下のソースコードのどこを修正したらよいかわかりません。
ご教授頂ければ幸いです。
【参考にしたwebサイト:「dobon.net 名前を付けて保存ダイアログボックスを表示」】
URL:[https://dobon.net/vb/dotnet/form/savefiledialog.html]
Visual
1 2using System; 3using System.Collections.Generic; 4using System.ComponentModel; 5using System.Data; 6using System.Drawing; 7using System.Linq; 8using System.Text; 9using System.Threading.Tasks; 10using System.Windows.Forms; 11 12namespace FusenMemo 13{ 14 public partial class FormFusenMemo : Form 15 { 16 private int mouseX = 0; //マウスの横の位置 17 private int mouseY = 0; //マウスの縦の位置 18 19 public FormFusenMemo() 20 { 21 InitializeComponent(); 22 } 23 24 private void textFusenMemo_TextChanged(object sender, EventArgs e) 25 { 26 27 } 28 29 private void textFusenMemo_MouseDown(object sender, MouseEventArgs e) 30 { 31 //<判定>押されたボタンがマウスの左ボタン? 32 if (e.Button == MouseButtons.Left) 33 { 34 //Yesの場合 35 this.mouseX = e.X; 36 this.mouseY = e.Y; 37 } 38 } 39 40 private void textFusenMemo_KeyDown(object sender, KeyEventArgs e) 41 { 42 //<判定>押されたキーがEscキー? 43 if (e.KeyCode == Keys.Escape) 44 { 45 //Escキーである場合 46 //DialogMessaseを出力する。出力 47 DialogResult result = MessageBox.Show("アプリケーションを終了しますか?" , "メモアプリの終了", MessageBoxButtons.YesNoCancel, 48 MessageBoxIcon.Exclamation); 49 50 if (result == DialogResult.Yes) 51 { 52 this.Close(); 53 } 54 } 55 56 //F5キーでメモの保存 57 if (e.KeyCode == Keys.F6) 58 { 59 //Escキーである場合 60 //DialogMessaseを出力する。出力 61 DialogResult result = MessageBox.Show("保存しますか?", "メモアプリの終了", MessageBoxButtons.YesNoCancel, 62 MessageBoxIcon.Exclamation); 63 64 if (result == DialogResult.Yes) 65 { 66 //SaveFileDiologクラスのインスタンスを作成:「名前を付けて保存」ボックスを表示する。 67 SaveFileDialog sfd = new SaveFileDialog(); 68 //はじめのファイル名を指定する。 69 //はじめに「ファイル名」で表示される文字列を指定する 70 sfd.FileName = "新しいファイル.html"; 71 //はじめに表示されるフォルダを指定する 72 sfd.InitialDirectory = @"C:\"; 73 //[ファイルの種類]に表示される選択肢を指定する 74 //指定しない(空の文字列)の時は、現在のディレクトリが表示される 75 sfd.Filter = "HTMLファイル(*.html;*.htm)|*.html;*.htm|すべてのファイル(*.*)|*.*"; 76 //[ファイルの種類]ではじめに選択されるものを指定する 77 //2番目の「すべてのファイル」が選択されているようにする 78 sfd.FilterIndex = 2; 79 //タイトルを設定する 80 sfd.Title = "保存先のファイルを選択してください"; 81 //ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする 82 sfd.RestoreDirectory = true; 83 //既に存在するファイル名を指定したとき警告する 84 //デフォルトでTrueなので指定する必要はない 85 sfd.OverwritePrompt = true; 86 //存在しないパスが指定されたとき警告を表示する 87 //デフォルトでTrueなので指定する必要はない 88 sfd.CheckPathExists = true; 89 90 //ダイアログを表示する 91 if (sfd.ShowDialog() == DialogResult.OK) 92 { 93 //OKボタンがクリックされたとき、選択されたファイル名を表示する 94 Console.WriteLine(sfd.FileName); 95 } 96 } 97 } 98 } 99 100 private void textFusenMemo_MouseDoubleClick(object sender, MouseEventArgs e) 101 { 102 //色を設定する。 103 colorDialogFusen.ShowDialog(); 104 //テキストボックスの背景色を選んだ色に変更する。 105 textFusenMemo.BackColor = colorDialogFusen.Color; 106 } 107 108 private void textFusenMemo_MouseMove(object sender, MouseEventArgs e) 109 { 110 //<判定>押されたボタンがマウスの左ボタン? 111 if (e.Button == MouseButtons.Left) 112 { 113 //Yesの場合 114 this.Left += e.X - mouseX; 115 this.Top += e.Y - mouseY; 116 } 117 } 118 } 119} 120
回答3件
あなたの回答
tips
プレビュー