我在代码隐藏中使用C#处理WPF应用程序。 在我的应用程序中,我可以打开并保存XML文件,这些文件位于我已存储在app.config中的路径中。 当我想打开一个XML文件时,我将OpenFileDialog的InitialDirectory属性设置为来自配置的文件夹路径。 它第一次工作正常。 但是,如果我同时打开另一个文件夹路径然后想再次打开XML文件夹,我会在我的OpenFileDialog中获得另一个文件夹路径。
我错过了什么?
private void openXMLFile(object sender, RoutedEventArgs e)
{
System.Windows.Forms.OpenFileDialog fileDialog = new System.Windows.Forms.OpenFileDialog();
fileDialog.InitialDirectory = System.Configuration.ConfigurationManager.AppSettings["SerializedXmlFolderPath"].ToString();
fileDialog.Filter = "xml files (*.xml)|*.xml";
fileDialog.FilterIndex = 1;
if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
string fileNameWithType = fileDialog.SafeFileName.Trim();
if (fileNameWithType == null || fileNameWithType.Length < 5 || !fileNameWithType.EndsWith(".xml")) {
MessageBox.Show("This is not a file name, that can be used!");
return;
}
formularsCommonName = fileNameWithType.Substring(0, fileNameWithType.Length - 4);
directory = Path.GetDirectoryName(fileDialog.FileName) + Path.DirectorySeparatorChar;
string fileName = directory + formularsCommonName + ".xml";
loadXMLFile(fileName);
}
fileDialog.Dispose();
}
答案 0 :(得分:1)
您可以尝试使用RestoreDirectory
属性:
fileDialog.RestoreDirectory = true;
属性值类型:System.Boolean如果对话框恢复,则为true 如果用户,当前目录到以前选择的目录 搜索文件时更改了目录;否则,错误。该 默认值为false。
答案 1 :(得分:0)
我找到了。 代码是正确的,但我在app.config的设置中犯了一个错误。 在路径中我写了“\”而不是“\”。 因此路径不正确,VS采用最后一条路径而不是InitialDirectory。