SaveFileDialog.ShowDialog()抛出FileNotFoundexception

时间:2012-08-09 09:42:28

标签: c# windows winforms windows-7-x64

以下代码在Windows 7(32位)上运行正常,但是当移植到64位时,我得到一个异常,说明“找不到文件”。我已经在64位配置中构建了该项目,但问题仍然存在。

如果计算机未安装Office,则会出现此问题。

代码如下:

try
{
    SaveFileDialog fileDialog = new SaveFileDialog();

    fileDialog.InitialDirectory = path;

    // set the default extension as mdb.
    fileDialog.DefaultExt = ".mdb";

    // allow the user to select the file type as CSV, XML or MDB.
    fileDialog.Filter = "CSV (*.csv)|*.csv|XML (*.xml)|*.xml|MDB (*.mdb)|*.mdb";                
    fileDialog.RestoreDirectory = true;

    if (DialogResult.OK == fileDialog.ShowDialog())  // exception occured
    {
        this.fileNameTextBox.Text = fileDialog.FileName;
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

1 个答案:

答案 0 :(得分:1)

这里的问题是“路径”的价值。 x86和x64机器可能具有不同的文件夹配置,例如程序文件(x86)就是其中之一。您可以从Environment.SpecialFolders枚举开始,这些路径应该有效。