当文件的路径为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;
对我不起作用
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