如何从树视图中选择文件夹并将文件名显示到列表框C#中



我在树视图中遇到了一个问题,那就是我从树视图中选择了一个文件夹,我的列表框将显示文件夹的文件名

我只能显示第一个文件夹的文件

当选择时,我想显示每个文件夹的文件名

我该怎么做?

这是我的代码:

private void Form1_Load(object sender, EventArgs e)
{
//Lấy các Disk trong Explorer
GetDisk();
}
//Get Disk
public void GetDisk() 
{
string[] disk = Directory.GetLogicalDrives();
for (int i = 0; i < disk.Length; i++)
{
tvFolder.Nodes.Add(disk[i]);
GetFol(disk[i], i);
}
}
//Get Folder 
public void GetFol(string name, int lv)
{
try
{
string[] fd = Directory.GetDirectories(name);
for (int i = 0; i < fd.Length; i++ )
{
tvFolder.Nodes[lv].Nodes.Add(fd[i]);
//Sub Dir
if (Directory.Exists(fd[i]))
{
tvFolder.Nodes[lv].Nodes.Add("Temp");
}
}
GetFile(name);
}
catch //(Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
//Get File Function
public void GetFile(string nameFol)
{
string[] strFile = Directory.GetFiles(nameFol);
for (int i = 0; i < strFile.Length; i++)
{
//Get File Image
string strExtension = strFile[i].Substring(strFile[i].LastIndexOf('.') + 1).ToLower();
if (strExtension == "jpg" || strExtension == "jpeg" || strExtension == "png" || strExtension == "gif")
{
string fileName = Path.GetFileName(strFile[i]);
lsbImages.Items.Add(strFile[i]);
}
}
}

谢谢!

因为您没有处理树视图节点选择:

private void Form1_Load(object sender, EventArgs e)
{
GetDisk();
tvFolder.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(tvFolder_AfterSelect);
}
//...
private void tvFolder_AfterSelect(object sender, TreeViewEventArgs e)
{
GetFile(e.Node.Text);
}

获取更多:

  • GetFiles与EnumerateFiles
  • 获取目录与枚举目录
  • TreeView

最新更新