DirectoryInfo di = new DirectoryInfo("路径"); DirectoryInfo[] dirs = di.GetDirectories(); for(int i=0;i<dirs.Lenght;i++) { comboBox.Items.Add(dirs[i].Name); }
string[] infos = Directory.GetDirectories("E:\\"); DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("address")); foreach (string info in infos) { string directoryName = info.Substring(info.LastIndexOf("\\")+1); DataRow row=dt.NewRow(); row["address"] = directoryName; dt.Rows.Add(row); } foreach (DataRow row in dt.Rows) { Console.WriteLine(row["address"].ToString()); }
路径没看到是绝对地址,我假定是C盘 记得加入IO using System.IO; DirectoryInfo[] dirs = new DirectoryInfo("C:\\Program Files").GetDirectories(); for (int i = 0; i < dirs.Length; i++) { comboBox1.Items.Add(dirs[i].Name); } comboBox1.SelectedText = dirs[0].Name;
DirectoryInfo di = new DirectoryInfo("路径"); DirectoryInfo[] dirs = di.GetDirectories(); for(int i=0;i<dirs.Lenght;i++) { comboBox.Items.Add(dirs[i].Name); }
DirectoryInfo di2 = new DirectoryInfo("filePath"); 路径是动态的,如何获得?这里就显示filePath
是显示filePath字符串中的内容。sorry
DirectoryInfo di2 = new DirectoryInfo("filePath"); -----》 DirectoryInfo di2 = new DirectoryInfo(filePath); filePath你传来的啊?
DirectoryInfo di = new DirectoryInfo("路径");
DirectoryInfo[] dirs = di.GetDirectories();
for(int i=0;i<dirs.Lenght;i++)
{
comboBox.Items.Add(dirs[i].Name);
}
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("address"));
foreach (string info in infos)
{
string directoryName = info.Substring(info.LastIndexOf("\\")+1);
DataRow row=dt.NewRow();
row["address"] = directoryName;
dt.Rows.Add(row);
}
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["address"].ToString());
}
记得加入IO using System.IO;
DirectoryInfo[] dirs = new DirectoryInfo("C:\\Program Files").GetDirectories();
for (int i = 0; i < dirs.Length; i++)
{
comboBox1.Items.Add(dirs[i].Name);
}
comboBox1.SelectedText = dirs[0].Name;
DirectoryInfo[] dirs = di.GetDirectories();
for(int i=0;i<dirs.Lenght;i++)
{
comboBox.Items.Add(dirs[i].Name);
}
路径是动态的,如何获得?这里就显示filePath
-----》
DirectoryInfo di2 = new DirectoryInfo(filePath); filePath你传来的啊?
如果获得文件夹下文件
你得使用di2.GetFiles如果还想获得子文件夹的内容
你得递归
for(int i=0;i <di.Lenght;i++)
{
comboBox.Items.Add(di[i].Name);
}
楼上的都回答啦
DirectoryInfo di = new DirectoryInfo("路径");
FileInfo[] files=di.GetFiles();foreach(FileInfo info in files)
{
comboBox.Items.Add(info.FullName);
}
FileInfo[] dirs2 = di2.GetFiles();
还是报错!
FileInfo[] dirs2 = di2.GetFiles();
如果想获得指定目录的文件夹,那么if (Directory.Exists(filePath))
{
string[] directories = Directory.GetDirectories(filePath);
foreach (string s in directories)
{
comboBox.Items.Add(s);
}
}
如果想获得指定目录的文件,那么if (Directory.Exists(filePath))
{
string[] fileNames = Directory.GetFiles(filePath);
foreach (string s in fileNames)
{
comboBox.Items.Add(s);
}
}
如果想获得指定目录的文件,包括子文件夹下的文件,那么if (Directory.Exists(filePath))
{
getDirectories(filePath);
}private void getDirectories(string path)
{
string[] fileNames = Directory.GetFiles(path);
string[] directories = Directory.GetDirectories(path);
foreach (string file in fileNames)
{
comboBox.Items.Add(file);
}
foreach (string dir in directories)
{
getDirectories(dir);
}
}
不如用treeview TreeNode node = this.treeView1.Nodes.Add("D:\\");
AddNode(node, "D:\\"); public void AddNode(TreeNode node, string path)
{
try
{
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] files = dir.GetFiles();
foreach (FileInfo f in files)
{
node.Nodes.Add(f.FullName, f.FullName);
}
DirectoryInfo[] dirs = dir.GetDirectories();
foreach (DirectoryInfo d in dirs)
{
TreeNode subNode= node.Nodes.Add(d.FullName, d.FullName);
AddNode(subNode,d.FullName);//这样写速度很慢,建议你在treeView1_AfterExpand事件里写,如果在treeView1_AfterExpand里写,把这句话去掉
}
}
catch { }
}
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
foreach (TreeNode node in e.Node.Nodes)
{ if (node.Nodes.Count == 0)
{
if (Directory.Exists(node.Text))
AddNode(node, node.Text);
}
} }
{
private System.Collections.Specialized.StringCollection folderCol; public Form1()
{
InitializeComponent();
folderCol = new System.Collections.Specialized.StringCollection();
CreateHeadersAndFillListView();
PaintListView(@"C:\");
folderCol.Add(@"C:\");
} private void CreateHeadersAndFillListView()
{
ColumnHeader colHead;
//First header
colHead = new ColumnHeader();
colHead.Text = "Filename";
this.listView1.Columns.Add(colHead);
//Second header
colHead = new ColumnHeader();
colHead.Text = "Size";
this.listView1.Columns.Add(colHead);
//Third header
colHead = new ColumnHeader();
colHead.Text = "Last accessed";
this.listView1.Columns.Add(colHead);
} private void PaintListView(string root)
{
try
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
if (root.CompareTo("") == 0)
return;
DirectoryInfo dir = new DirectoryInfo(root);
DirectoryInfo[] dirs = dir.GetDirectories();
DirectoryInfo[] files = dir.GetFiles();
this.listView1.Items.Clear();
this.label1.Text = root;
this.listView1.BeginUpdate();
foreach (System.IO.DirectoryInfo di in dirs)
{
lvi = new ListViewItem();
lvi.Text = di.Name;
lvi.ImageIndex = 0;
lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = "";
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi);
this.listView1.Items.Add(lvi);
}
foreach (FileInfo fi in files)
{
lvi = new ListViewItem();
lvi.Text = fi.Name;
lvi.ImageIndex = 1;
lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.Length.ToString();
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi);
this.listView1.Items.Add(lvi);
}
this.listView1.EndUpdate();
}
catch (System.Exception err)
{
MessageBox.Show("Error:" + err.Message);
} } private void listView1_ItemActivate(object sender, EventArgs e)
{
System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
string filename = lw.SelectedIndices[0].Tag.ToString();
if (lw.SelectedIndices[0].ImageIndex != 0)
{
try
{
System.Diagnostics.Process.Start(filename);
}
catch
{
return;
}
}
else
{
PaintListView(filename);
folderCol.Add(filename);
}
} private void button1_Click(object sender, EventArgs e)
{
if(folderCol.Count>1)
{
PaintListView(folderCol[folderCol.Count-2].ToString());
folderCol.RemoveAt(folderCol.Count - 1);
}
else
{
PaintListView(folderCol[0].ToString());
}
}
错误 1 无法将类型“System.IO.FileInfo[]”隐式转换为“System.IO.DirectoryInfo[]” D:\My Documents\Visual Studio 2005\Projects\C#rumen\Windows\Chapter14\ListView\ListView\Form1.cs 54 41 ListView
错误 2 无法将类型“System.IO.DirectoryInfo”转换为“System.IO.FileInfo” D:\My Documents\Visual Studio 2005\Projects\C#rumen\Windows\Chapter14\ListView\ListView\Form1.cs 74 17 ListView
错误 3 “int”并不包含“Tag”的定义 D:\My Documents\Visual Studio 2005\Projects\C#rumen\Windows\Chapter14\ListView\ListView\Form1.cs 102 53 ListView
错误 4 “int”并不包含“ImageIndex”的定义 D:\My Documents\Visual Studio 2005\Projects\C#rumen\Windows\Chapter14\ListView\ListView\Form1.cs 103 39 ListView
{
try
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
if (root.CompareTo("") == 0)
return;
DirectoryInfo dir = new DirectoryInfo(root);
DirectoryInfo[] dirs = dir.GetDirectories();
FileInfo[] files = dir.GetFiles(); this.listView1.Items.Clear();
this.label1.Text = root;
this.listView1.BeginUpdate();
foreach (System.IO.DirectoryInfo di in dirs)
{
lvi = new ListViewItem();
lvi.Text = di.Name;
lvi.ImageIndex = 0;
lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = "";
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi);
this.listView1.Items.Add(lvi);
}
foreach (FileInfo fi in files)
{
lvi = new ListViewItem();
lvi.Text = fi.Name;
lvi.ImageIndex = 1;
lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.Length.ToString();
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi);
this.listView1.Items.Add(lvi);
}
this.listView1.EndUpdate();
}
catch (System.Exception err)
{
MessageBox.Show("Error:" + err.Message);
} }