0

我想使用 SaveFileDialog 控件保存文件。为什么文件需要已经存在才能保存?

这是我正在使用的代码:

string month = dateTimePicker1.Value.Month.ToString();
string year = dateTimePicker1.Value.Year.ToString();
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = @"C:\";
saveFileDialog1.Title = "Save Sql Files";
saveFileDialog1.FileName = "MysqlBackup-"+month+"-"+year+".sql";
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.DefaultExt = "Sql";
saveFileDialog1.Filter = "Sql files (*.Sql)|*.Sql";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
    // Here is the error. After typing in the filename, when I click OK it gives me an error stating that the file does not exist.
    }
4

2 回答 2

8

此行要求文件存在于所选文件夹中

saveFileDialog1.CheckFileExists = true;

将其设置为 false,如果文件不存在,您可以使用 OK 退出

MSDN 上的 CheckFileExists

获取或设置一个值,该值指示如果用户指定的文件名不存在,对话框是否显示警告。

于 2012-12-07T11:47:48.447 回答
2

你需要设置:

saveFileDialog.OverwritePrompt = true;
saveFileDialog.CreatePrompt = false;

OverwritePrompt:获取或设置一个值,该值指示如果用户指定的文件名已存在,则“另存为”对话框是否显示警告。

CreatePrompt:获取或设置一个值,该值指示如果用户指定的文件不存在,对话框是否提示用户创建文件的权限。

于 2016-07-18T09:50:46.443 回答