【问题标题】:Getting File path from a open file dialog从打开的文件对话框中获取文件路径
【发布时间】:2014-02-04 08:38:55
【问题描述】:

我想做一个按钮

  • 从文件系统中的某个位置打开一个文件,
  • 获取其文件路径,
  • 将文件路径作为参数传递给方法
  • 打开该文件并对其进行处理。

我做了一个这样的按钮:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog fDialog = new OpenFileDialog();

            fDialog.Title = "Open XML file";
            fDialog.Filter = "XML files|*.config";
            fDialog.InitialDirectory = @"C:\";
            fDialog.ShowDialog();
        }

我已经创建了一个从硬编码位置读取的方法,但是有人可以帮助我了解该文件路径部分变量吗?

使用 XmlTextReader 读取文件的方法如下:

private void ReadAdvancedConfigFile()
        {
            XElement root = null;
            root = XElement.Load(new XmlTextReader(@"C:\Users\nemanja.mosorinski\Downloads\__Research-master\__Research-master\SEDMSVSPackage\VisualStudioPackage\AppRes\ConfigFiles\Unity.config"));
        }

所以基本上我想将 OpenFileDialog 创建的某些文件的新文件路径放在根变量中。

【问题讨论】:

  • 为什么要把变量初始化为null?

标签: c# filepath openfiledialog xelement


【解决方案1】:

改变这一行:

fDialog.ShowDialog();

收件人:

bool? control = fDialog.ShowDialog();
if(control.Value)
{
   var filePath = fDialog.FileName;
   ReadAdvancedConfigFile(filePath)
}

你也应该改变方法签名

private void ReadAdvancedConfigFile(string path)

【讨论】:

  • DialogResult.OK 出现错误。它说“System.Nullable”不包含“OK”的定义。
  • @nemo_87 使用这个:System.Windows.Forms.DialogResult.OK
  • 现在它说:错误 1 ​​运算符 '==' 不能应用于 'bool?' 类型的操作数?和'System.Windows.Forms.DialogResult'
  • 你没有添加OK System.Windows.Forms.DialogResult.OK
  • @nemo_87 您必须实际阅读错误消息并尝试理解它们。不要一看到错误就放弃。这些错误都是有意义的,它们都解释了问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 2017-12-04
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多