c# ListView - 在实现 MouseDoubleClick() 方法时得到“路径不是合法形式”
本文关键字:路径 实现 ListView MouseDoubleClick 方法 | 更新日期: 2023-09-27 18:33:23
我对C#很陌生。我正在使用 C# 填充文件资源管理器。我现在要做的是实现 listView1_MouseDoubleClick()
方法,以便当我双击子文件夹时,当前 listView 将被清除,然后它将显示该子文件夹中的文件和文件夹(就像 Windows 资源管理器所做的那样)。这是我的代码:
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Selected == true)
{
string path = listView1.Items[i].Name;
comboBox1.Text = path;
listView1.Items.Clear();
LoadFilesAndDir(path);
}
}
}
private void LoadFilesAndDir(string address)
{
DirectoryInfo di = new DirectoryInfo(address);
try
{
foreach (FileInfo fi in di.GetFiles())
{
listView1.Items.Add(fi.Name);
}
try
{
foreach (DirectoryInfo listd in di.GetDirectories())
{
listView1.Items.Add(listd.FullName, listd.Name, 0);
}
}
catch (Exception e1)
{
}
}
catch (Exception e1)
{
}
}
但它未能运行。当我逐步调试此错误时,我发现在此语句之后:path = listView1.Items[i].Name;
path
变量的值为 ""
。所以我想这是让错误的原因。但我不知道如何解决这个问题...你们能帮我这个吗?非常感谢提前!
确保首先声明字符串"path"
string path = "";
然后插入以下代码:
private void listView1_MouseDoubleClick(object sender, EventArgs e)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Selected == true)
{
path = Convert.ToString(listView1.Items[i]);
// This replaces the part "List View Item: {"
path = path.Replace("ListViewItem: {", "");
// This replaces the part "}"
path = path.Replace("}", "");
comboBox1.Text = path;
listView1.Items.Clear();
LoadFilesAndDir(path);
}
}
}
代码有点长,但它有效!