以下简单代码:
Microsoft.Win32.OpenFileDialog _fileDialog = new Microsoft.Win32.OpenFileDialog();
_fileDialog.Title = CarPlus.Base.Properties.Resources.ContentSettingsDatabase_FileOpen_TitleRestore;
_fileDialog.CheckPathExists = false;
_fileDialog.CheckFileExists = false;
_fileDialog.ValidateNames = false;
_fileDialog.Multiselect = false;
_fileDialog.InitialDirectory = _searchPath == null ? System.Environment.SpecialFolder.MyComputer.ToString() : _searchPath;
_fileDialog.Filter = "Wiederherstellungsarchiv (*.fbk)|*.fbk";
// Display OpenFileDialog
if (_fileDialog.ShowDialog() == true)
return (_fileDialog.FileName);
return (null);
意思是让用户可以选择文件或写下自己的路径和文件名。这是必要的,因为所选文件是firebird实例的数据库备份文件。 firebird服务器将使用此文件来恢复数据库,但他可以访问该文件,当然,如果firebird实例在另一台计算机上运行,则文件路径可能不同。 我的问题是,如果我在对话框'c:\ bar.fbk'中写下即使本地计算机上不存在该文件也一切正常,但如果我写'c:\ foo \ bar.fbk'我会得到的路径不存在的错误消息。 但为什么?我的filedialog设置包括
_fileDialog.CheckPathExists = false;
谁知道为什么?