我试图使用openFileDialog加载到2个不同区域的2个不同文件。我尝试做两种方法,首先我尝试添加一个if语句来查看他们选择哪个文件并使用该表达式,但它给了我一个错误。
OpenFileDialog opendi = new OpenFileDialog();
opendi.Filter = "xml|*.xml";
if (opendi.ShowDialog() == DialogResult.OK)
{
if (opendi.FileName == Hotel_Filename)
{
hotelListData = HotelList.HotelLoadFile(opendi.FileName);
lblStatus.Text = "Success";
}
}
else
{
rmtp = roomtypedata.LoadFile(opendi.FileName);
lblStatus.Text = "Success";
}
如果我这样做,它可以工作,但我必须以正确的顺序加载文件,否则如果我先加载第二个,我得到一个错误。那么有更好的方法吗?
OpenFileDialog opendi = new OpenFileDialog();
opendi.Filter = "xml|*.xml";
if (opendi.ShowDialog() == DialogResult.OK)
{
hotelListData = HotelList.HotelLoadFile(opendi.FileName);
lblStatus.Text = "Success";
}
if (opendi.ShowDialog() == DialogResult.OK)
{
rmtp = roomtypedata.LoadFile(opendi.FileName);
lblStatus.Text = "Success";
}
答案 0 :(得分:2)
好的,问题似乎是检查文件名。您只想比较文件名,而不是所有路径。试试这个:
Hotel_Filename = "hotels.xml"
....
for (int=0;i<2;i++)
{
OpenFileDialog opendi = new OpenFileDialog();
opendi.Filter = "xml|*.xml";
if (opendi.ShowDialog() == DialogResult.OK)
{
if (Path.GetFileName(opendi.FileName) == Hotel_Filename)
{
hotelListData = HotelList.HotelLoadFile(opendi.FileName);
lblStatus.Text = "Success";
}
else
{
rmtp = roomtypedata.LoadFile(opendi.FileName);
lblStatus.Text = "Success";
}
}
}