0
ファイル名を変更してもう一度保存しようとすると、他のプログラムで使用中のファイルに書き込むときにsavefilediallogを開いたままにするにはどうすればよいですか?Savefiledialogロックされたファイル、ファイル名を変更する
private void button1_Click_2(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
CsvExport = Class_ExportData.DataTableToCSV(datatabelControle, csvSCheidingteken);
Cursor.Current = Cursors.Default;
saveFileDialog1.OverwritePrompt = true;
saveFileDialog1.Filter = "Komma gescheiden waarden (*.csv)|*.csv|Tekst bestanden (*.txt)|*.txt|Alle formaten (*.*)|*.*";
saveFileDialog1.DefaultExt = "csv";
saveFileDialog1.AddExtension = true;
saveFileDialog1.ShowDialog();
}
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
try
{
string name = saveFileDialog1.FileName; // Get file name.
File.WriteAllText(name, CsvExport); // Write to the file name selected.
}
catch (Exception ex)
{
//file is locked, how to get back to the open save file dialog ???
}
}
多分[this](http://stackoverflow.com/questions/3846646/exception-in-opening-a-file-that-is-already-open)あなたを助けることができます。 –
あなたはそうしてはいけません。唯一の方法は、別の名前を取り消すか、または別の名前を選ぶことです。多くのマウスクリックを作成することなく効率的に警告することは面倒になるかもしれません... –
そのための確立されたUXパターンユーザーに最初に、ファイルが書き込みのためにロックされている(理想的には、誰によって/どのプロセスによって)のかをフィードバックすることです。そのメッセージには取り消しまたは再試行のオプションがあり、再試行でsavefiledialogを再び開くことができます。同じインスタンスを再利用すると、最後に選択したパスとファイル名が保持されるため、ユーザーの手間は軽減されます。 – dlatikay