如何将资源文件(resx)保存到驱动器

时间:2015-02-09 09:46:13

标签: c# resources

我想将文件保存到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");

1 个答案:

答案 0 :(得分:0)

这部分很奇怪:

SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = saveFileDialog1.FileName;

当您尝试设置对话框的初始目录时,显示用户尚未选择的文件名。试着把这条线拿出来?

关于检查文件是否存在,您添加的行:

saveFileDialog1.CheckFileExists = true;

这将检查以确保您指定的文件存在,这就是您收到错误的原因。如果删除此行,则可以使用以下命令检查是否覆盖文件或创建新文件:

 if(System.IO.File.Exists(filename))