I got a code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Management;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
e.Node.Nodes.Clear();
string[] dir = Directory.GetDirectories(e.Node.FullPath, ("*"));
for (int i = 0; i < dir.Length; i++)
{
DirectoryInfo mappeninfo = new DirectoryInfo(dir[i]);
e.Node.Nodes.Add(mappeninfo.Name);
}
}
private void Form1_Load(object sender, EventArgs e)
{
string[] directories = Directory.GetLogicalDrives();
// hier word de directories geladen
foreach (string s in Directory.GetLogicalDrives())
{
treeView1.Nodes.Add(s);
}
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
string sPath = ("*");
DirectoryInfo di = new DirectoryInfo(sPath);
FileInfo[] rgFiles = di.GetFiles("*");
}
}
}
but the listview wont show any files in any directory
Loading
Nilanka DharmadasaPosted Dec 15, 2009, 6:21 AM
Change your code as follows.
public Form1()
{
InitializeComponent();
listView1.View = View.Details;
listView1.Columns.Add("Name");
listView1.Columns.Add("Size");
listView1.Columns.Add("Date Modified");
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
e.Node.Nodes.Clear();
listView1.Items.Clear();
string[] dir = Directory.GetDirectories(e.Node.FullPath, ("*"));
for (int i = 0; i < dir.Length; i++)
{
DirectoryInfo mappeninfo = new DirectoryInfo(dir[i]);
e.Node.Nodes.Add(mappeninfo.Name);
}
string[] files = Directory.GetFiles(e.Node.FullPath, ("*"));
ListViewItem item;
FileInfo fi;
for (int i = 0; i < files.Length; i++)
{
item = new ListViewItem(Path.GetFileName(files[i]));
fi = new FileInfo(files[i]);
item.SubItems.Add(fi.Length.ToString());
item.SubItems.Add(fi.LastWriteTime.ToString());
listView1.Items.Add(item);
}
}
Eric HamiltonPosted Dec 15, 2009, 6:45 AM
Eric HamiltonPosted Dec 15, 2009, 5:29 AM
Nilanka DharmadasaPosted Dec 15, 2009, 5:17 AM
Change your code as follows.
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
e.Node.Nodes.Clear();
listView1.Items.Clear();
string[] dir = Directory.GetDirectories(e.Node.FullPath, ("*"));
for (int i = 0; i < dir.Length; i++)
{
DirectoryInfo mappeninfo = new DirectoryInfo(dir[i]);
e.Node.Nodes.Add(mappeninfo.Name);
}
string[] files = Directory.GetFiles(e.Node.FullPath, ("*"));
for (int i = 0; i < files.Length; i++)
{
listView1.Items.Add(Path.GetFileName(files[i])) ;
}
}
And comment your listView1_SelectedIndexChanged method as follows. Because it is also not needed for your requirement.
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
//string sPath = ("*");
//DirectoryInfo di = new DirectoryInfo(sPath);
//FileInfo[] rgFiles = di.GetFiles("*");
}
Now run your code and see. If you want to change it further, let me know.
I can help you.
Eric HamiltonPosted Dec 15, 2009, 4:59 AM
Nilanka DharmadasaPosted Dec 15, 2009, 3:58 AM
In your code, list view does not contain any item. So it does not show any item.
What is your requirement? What do you want to show in the list view?
If you can tell that, I can help you to change this code to match your need.