当文件的路径为null时(当您取消OpenFiledDalog时)发生异常

本文关键字:OpenFiledDalog 异常 取消 文件 路径 null | 更新日期: 2023-09-27 17:59:13

这是代码:

OpenFileDialog openFileDialog1 = new OpenFileDialog();
        DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
        if (result == DialogResult.OK) // Test result.
        {
            string file = openFileDialog1.FileName;
        }
        else { MessageBox.Show("Error."); }
//later on..
        DataTable lertableEC0 = new DataTable();
        lertableEC0.ReadXml(openFileDialog1.FileName);

最后出现了错误,一切都很好,xml导入等等,只有当我在打开的对话框中取消时,我才会得到异常,有什么提示吗?

(还有一个类似的问题,但答案对我来说仍然很困惑

  return null;    

对我不起作用

当文件的路径为null时(当您取消OpenFiledDalog时)发生异常

  if (result == DialogResult.OK) // Test result.
  {
        string file = openFileDialog1.FileName;
        DataTable lertableEC0 = new DataTable();
        lertableEC0.ReadXml(openFileDialog1.FileName);       
  }
 else { 
       MessageBox.Show("Error.");
  }

由于单击"取消"按钮时未设置文件名,所以会将空字符串传递给抛出异常的ReadXml()函数。因此,您必须将函数移动到OK点击条件

取消对话框时,FileDialog.FileName""(空字符串),因为没有选择任何内容

要处理此问题,例如,如果未选择任何文件,则不要执行任何操作,请确保仅在"if确定对话框结果"逻辑中使用FileName。

DataTable lertableEC0 = new DataTable();
DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
if (result == DialogResult.OK) {
    // -> openFileDialog1.FileName is not empy here
    lertableEC0.ReadXml(openFileDialog1.FileName);
} else {
    // -> openFileDialog1.FileName is empty here
    MessageBox.Show("Error.");
}
// -> openFileDialog1.FileName may or may not be empty here