我有三个下拉列表。从这三个我必须选择各种路径来检索一个文件夹。问题是路径无法检索文件夹并给出错误找不到路径的一部分。我的代码就是。
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));
}
}
}
答案 0 :(得分: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, "\\");
答案 1 :(得分:0)
如果您需要Drp_List1.SelectedItem.Text
所选的下拉菜单项,请使用Text
。
如果您需要Drp_List1.SelectedItem.Value
所选的下拉菜单,请使用Value
。
为所有下拉菜单执行此操作。
答案 2 :(得分: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) + "\\";
而且,正如格洛丽亚所说,如果你想使用所选项目的文本,你应该使用Drp_List1.SelectedItem.Text
。所以它应该是:
string PathFecha = Drp_List1.SelectedItem.Text + "\\"
+ Drp_List2.SelectedItem.Text + "\\"
+ Drp_List3.SelectedItem.Text + "\\";
答案 3 :(得分:0)
string PathFecha =
System.IO.Path.Combine(
ConfigurationManager.AppSettings.ToString(),
Drp_List1.SelectedItem.Text,
Drp_List2.SelectedItem.Text,
Drp_List3.SelectedItem.Text);
使用Path.Combine()可以更轻松地处理路径。