路径Program File \Info 
文件夹1
文件夹2
文件夹3
如何将,这个路径下的名件夹名称,填到comboBox中?

解决方案 »

  1.   


    DirectoryInfo di = new DirectoryInfo("路径");
    DirectoryInfo[] dirs = di.GetDirectories();
    for(int i=0;i<dirs.Lenght;i++)
    {
        comboBox.Items.Add(dirs[i].Name);
    }
      

  2.   

     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());
                }
      

  3.   

    路径没看到是绝对地址,我假定是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;
      

  4.   

    DirectoryInfo di = new DirectoryInfo("路径");
    DirectoryInfo[] dirs = di.GetDirectories();
    for(int i=0;i<dirs.Lenght;i++)
    {
        comboBox.Items.Add(dirs[i].Name);
    }
      

  5.   

    DirectoryInfo di2 = new DirectoryInfo("filePath");
    路径是动态的,如何获得?这里就显示filePath 
      

  6.   

    是显示filePath字符串中的内容。sorry
      

  7.   

    DirectoryInfo di2 = new DirectoryInfo("filePath"); 
    -----》
    DirectoryInfo di2 = new DirectoryInfo(filePath); filePath你传来的啊?
      

  8.   

    嗯,那文件夹中的txt文本文件名称也是这么获得吗?
      

  9.   

    文件夹下的 .txt文本文件名称也是这么获得吗?
      

  10.   


    如果获得文件夹下文件
    你得使用di2.GetFiles如果还想获得子文件夹的内容
    你得递归
      

  11.   

    获取文件就用DirectoryInfo.GetFiles()
      

  12.   

    传参数到new DirectoryInfo(路径参数)这里就可以了啊。
      

  13.   

    补充一句,你可以用System.IO.Path.GetExtension(“路径”)这个方法得到文件的扩展名,这样就可以得到任何一类的文件了,文件夹用GetDirectories(), 文件用GetFiles()
      

  14.   

    DirectoryInfo[] di= new DirectoryInfo(path).GetDirectories(); 
    for(int i=0;i <di.Lenght;i++) 

        comboBox.Items.Add(di[i].Name); 

    楼上的都回答啦
      

  15.   


    DirectoryInfo di = new DirectoryInfo("路径"); 
    FileInfo[] files=di.GetFiles();foreach(FileInfo info in files)
    {
       comboBox.Items.Add(info.FullName); 
    }
      

  16.   

    报错为Cannot implicitly convert type'System.IO.FileInfo[]' to 'System.IO.DirectoryInfo' FileInfo di2 = new FileInfo(filePath);
     FileInfo[] dirs2 = di2.GetFiles();
    还是报错!
      

  17.   

    DirectoryInfo di2 = new DirectoryInfo(filePath);
    FileInfo[] dirs2 = di2.GetFiles(); 
      

  18.   

    我还真是搞不清楚你到底想干啥
    如果想获得指定目录的文件夹,那么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);
        }
    }
      

  19.   

    就是就是,已经提供了使用Directory这个类的思路了,具体应用应该自己查MSDN,自己多体会!
      

  20.   

    如果显示文件
    不如用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);
                    }
                }        }
      

  21.   

    不知楼主的问题解决没,我也是遇到了相同的问题有哪位大侠帮忙看下呀!~public partial class Form1 : Form
        {
            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
      

  22.   

    上面的程序实现的是在listview控件里显示C盘文件夹,按钮是返回上一层
      

  23.   

      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();
                    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);
                }        }