我想将文件保存到C盘,用户将选择任何位置来保存文件。我在下面尝试了这个代码,它在粗线上给我一个错误。可以请你纠正我错了。我还想在保存之前检查文件是否存在。我怎样才能做到这一点?
这是错误,我正在验证是否给出了正确的路径
string PathSelection = "";
if (PathSelection.Length > 0)
{
txtInputfile.Text = PathSelection;
}
// i tried this
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = saveFileDialog1.FileName;
saveFileDialog1.Title = "Save Resource Files";
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.CheckPathExists = true;
saveFileDialog1.DefaultExt = "resx";
saveFileDialog1.Filter = "Save Resource Files (*.resx)|*.resx";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK) // error here!
{
PathSelection = saveFileDialog1.FileName;
//string path = saveFileDialog1.FileName;
oDataSet.WriteXml(PathSelection);
}
oDataSet.Tables.Add("Data");
答案 0 :(得分:0)
这部分很奇怪:
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = saveFileDialog1.FileName;
当您尝试设置对话框的初始目录时,显示用户尚未选择的文件名。试着把这条线拿出来?
关于检查文件是否存在,您添加的行:
saveFileDialog1.CheckFileExists = true;
这将检查以确保您指定的文件存在,这就是您收到错误的原因。如果删除此行,则可以使用以下命令检查是否覆盖文件或创建新文件:
if(System.IO.File.Exists(filename))