1

我有三个下拉列表。从这三个中,我必须选择各种路径来检索一个文件夹。问题是路径无法检索文件夹并给出错误找不到路径的一部分。我的代码是。

protected void Btn_Load_Click1(object sender, EventArgs e)


    {

        string _username = ConfigurationManager.AppSettings["ImpersonatedUserName"].ToString();
        string _password = ConfigurationManager.AppSettings["ImpersonatedPassword"].ToString();
        string _domain = ConfigurationManager.AppSettings["ImpersonatedDomain"].ToString();

        Impersonation objImpersonation = new Impersonation();

        if (objImpersonation.impersonateValidUser(_username, _domain, _password))
        {




        string PathFecha = ConfigurationManager.AppSettings.ToString() + "\\Convert.ToString(Drp_List1.SelectedItem)\\Convert.ToString(Drp_List2.SelectedItem)\\Convert.ToString(Drp_List3.SelectedItem)\\";

            string[] files = System.IO.Directory.GetFiles(PathFecha);
            foreach (string filename in files)
            {
              ListBox1.Items.Add(new ListItem(System.IO.Path.GetFileName(filename), filename));

            }

        }
    }
4

4 回答 4

1

您没有正确转换路径。

更改此行:

string PathFecha = ConfigurationManager.AppSettings.ToString() + "\\Convert.ToString(Drp_List1.SelectedItem)\\Convert.ToString(Drp_List2.SelectedItem)\\Convert.ToString(Drp_List3.SelectedItem)\\";

至:

string PathFecha = string.Format("{0}{4}{1}{4}{2}{4}{3}{4}", ConfigurationManager.AppSettings.ToString(), Drp_List1.SelectedText, Drp_List2.SelectedText, Drp_List3.SelectedText, "\\");
于 2013-07-02T20:24:04.073 回答
0
 string PathFecha = 
    System.IO.Path.Combine(
     ConfigurationManager.AppSettings.ToString(),
     Drp_List1.SelectedItem.Text,
     Drp_List2.SelectedItem.Text,
     Drp_List3.SelectedItem.Text);

Using Path.Combine() may make it a little easier dealing with the paths.

于 2013-07-02T20:59:43.037 回答
0

好吧,在我看来,这条线:

string PathFecha = ConfigurationManager.AppSettings.ToString() + "\\Convert.ToString(Drp_List1.SelectedItem)\\Convert.ToString(Drp_List2.SelectedItem)\\Convert.ToString(Drp_List3.SelectedItem)\\";

您只是将单个字符串连接到基本路径,这不是您想要的。将 C# 代码放入字符串中不会替换字符串中该代码的结果。您想要做的是单独连接路径的每个部分:

string PathFecha = Convert.ToString(Drp_List1.SelectedItem) + "\\"
                   + Convert.ToString(Drp_List2.SelectedItem) + "\\"
                   + Convert.ToString(Drp_List3.SelectedItem) + "\\";

而且,正如 Gloria 所说,如果要使用所选项目的文本,则应使用Drp_List1.SelectedItem.Text. 所以它实际上应该是:

string PathFecha = Drp_List1.SelectedItem.Text + "\\"
                   + Drp_List2.SelectedItem.Text + "\\"
                   + Drp_List3.SelectedItem.Text + "\\";
于 2013-07-02T20:21:58.970 回答
0

Drp_List1.SelectedItem.Text如果您需要Text选定的下拉菜单项,请使用。

Drp_List1.SelectedItem.Value如果您需要Value选定的下拉菜单,请使用。

对所有下拉菜单执行此操作。

于 2013-07-02T20:16:24.380 回答