私は学校のプロジェクトに取り組んでいますが、この最後のバグは解りません。最初のif文がfalseを返したときにsaveFileDialogをオープンすることになっています。しかし、elseステートメントを続ける代わりに、例外をスローするようにまっすぐに進み、saveFileダイアログを開かないようにします。それは私に次のエラーを与える:Code: The path is not of a legal form.
C#Try/CatchがネストされたIf/Elseステートメントをスキップし、SaveDialogを開こうとしません
私は問題を理解していません。ユーザーは、ポップアップする保存ダイアログのパスを選択できる必要があります。ファイルはまだ存在せず、ファイルを保存するためにファイルの保存ダイアログを開くはずです。ロブの提案パー
private void btnSave_Click(object sender, EventArgs e)
{
// Declare StreamWriter object
StreamWriter outputFile;
// Try to write file
try
{
// If current file is > 0
if (new FileInfo(currentFile).Length > 0)
{
// Create output file using current file
outputFile = File.CreateText(currentFile);
// Loop through current file and write lines to output file
for (int i = 0; i < lstBoxLog.Items.Count; i++)
{
outputFile.WriteLine(lstBoxLog.Items[i].ToString());
}
// Close text file
outputFile.Close();
}
// Else open save dialog for user to save file
else
{
// If save file dialog is equal to dialog result
if (saveFile.ShowDialog() == DialogResult.OK)
{
// Open output file object with create text
outputFile = File.CreateText(saveFile.FileName);
// Set currentFile to = savefile dialog
currentFile = saveFile.FileName;
// Loop through each line and write to file
for (int i = 0; i < lstBoxLog.Items.Count; i++)
{
outputFile.WriteLine(lstBoxLog.Items[i].ToString());
}
// Close text file
outputFile.Close();
}
// Else show error message
else
{
// Display message box dialog
MessageBox.Show("Cannot save file.", "Not Saved");
}
}
}
// Display error message.
catch (Exception ex)
{
// Display message box dialog
MessageBox.Show("Save canceled. \n\nCode: " + ex.Message, "Save Error!");
}
}
は、「currentFile」は存在しない可能性があります。例外メッセージは何ですか? –
'currentFile'のような音が無効なパスを含んでいます。その価値は何ですか? – juharr
私はブレークポイントでそれを実行しました。そしてcurrentFileは値 ""を持っています。 例外メッセージは 'Save Cancelled 'です。コード:パスは正当な形式ではありません。 ' –