c#Opendialog加载2个文件

时间:2016-10-10 15:12:29

标签: c#

我试图使用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";

        }

1 个答案:

答案 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";
        }
    }
}