C++中到还有个DlgDirList函数。
C#中通过什么来实现,最好有段完成的代码~~~
列表框ID为_ListBox文件列表。
谢啦

解决方案 »

  1.   

           // Make a reference to a directory.
            DirectoryInfo di = new DirectoryInfo("c:\\");        // Get a reference to each directory in that directory.
            DirectoryInfo[] diArr = di.GetDirectories();        // Display the names of the directories.
            foreach (DirectoryInfo dri in diArr)
                _ListBox.Items.AddText(dri.Name);
      

  2.   

    DirectoryInfo 在哪个命名空间里的?
    编译通不过
      

  3.   

    using System.IO;呀!
    using System;
    using System.IO;class Test 
    {
        public static void Main() 
        {
            // Specify the directories you want to manipulate.
            DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
            try 
            {
                // Determine whether the directory exists.
                if (di.Exists) 
                {
                    // Indicate that the directory already exists.
                    Console.WriteLine("That path exists already.");
                    return;
                }            // Try to create the directory.
                di.Create();
                Console.WriteLine("The directory was created successfully.");            // Delete the directory.
                di.Delete();
                Console.WriteLine("The directory was deleted successfully.");        } 
            catch (Exception e) 
            {
                Console.WriteLine("The process failed: {0}", e.ToString());
            } 
            finally {}
        }
    }
      

  4.   

    恩加了using System.IO;编译通过了。
    但我想显示一个文件里的所有文件。用2楼代码
    DirectoryInfo di = new DirectoryInfo("c:\\"); 其中“c:\\”改为“F:\恐龙园”报错说是:           无法识别的转义序列
    然后又参照4楼的改为 @“F:\恐龙园” 能运行成功了,但只显示文件夹,文件却不显示~刚接触C#大家多多关照。
      

  5.   

    哦,还有我把AddText改为Add了, AddText说没有~
      

  6.   


    通过这位朋友的方法,你可以得到一个文件夹下子文件夹得信息;
    如果你还要得到所有文件的信息,你用:string[] filrPath = Directory.GetFiles("c:\\");
    做个循环,通过:FileInfo file = new FileInfo(filrPath[i]);
    在FileInfo里你可以得到你想到的文件的所有属性;
    建议你好好看下DirectoryInfo和FileInfo这两个类,在MSDN上;
      

  7.   

    恩,刚接触C#还什么都不懂呢。
    string[] filrPath = Directory.GetFiles("c:\\"); 
    FileInfo file = new FileInfo(filrPath[i]); 这两句不知道要放在哪里~~
      

  8.   


    string[] filepath = Directory.GetFiles("c:\\");
    FileInfo[] files = new FileInfo[filepath.Length];
    for(int i = 0; i < filepath.Length; i++)
    {
        files[i] = new FileInfo(filrPath[i]); 
    }我的理解.....里面文件的信息就全在files数组里了。
    我也是来学习的.....
      

  9.   

    唉~看完MSDN,对于这两个函数的理解还是没什么感觉啊~~百度了下说是Directory是操作目录的,FileInfo是操作文件的。
    楼上的能不能来个完整的?呵呵。我不知道原来的代码还要保留什么~
      

  10.   

    代码试验成功了,能显示文件了。我把这段代码是放在page_load里的,点一下就会增加一次。有没有什么方法能解决的?
    显示文件夹的时候不会蛮~
      

  11.   

                string[] filepath = Directory.GetFiles("c:\\");
                FileInfo[] files = new FileInfo[filepath.Length];
                for (int i = 0; i < filepath.Length; i++)
                {
                    files[i] = new FileInfo(filepath[i]);
                }
                foreach (FileInfo dri in files)
                {
                    _ListBox.Items.AddText(dri.Name);
                }大概是这样吧,获得所有文件的名字。
      

  12.   

    恩,代码我就是这么写的,不过AddText改成了Add。AddText报错找不到。 
      

  13.   

                string[] filepath = Directory.GetFiles("c:\\");            foreach (string file in filepath)
                {
                    FileInfo tmp = new FileInfo(file);                //在这里添加处理代码,例如
                    string filename = tmp.Name;
                    string filetime = tmp.CreationTime.ToString();                //你要把文件名或者信息绑定到列表控件,可以在这里添加代码
                }
      

  14.   

    现在的问题变成了,点击下列表框里显示的选项,它就增加一遍,怎么会这样的,我没增加列表点击函数的瑟。
    还有列表的双击函数在哪的~~
    下面是我完整的代码
    public partial class TVC_MANG_Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
                  // Make a reference to a directory. 
         //   DirectoryInfo di = new DirectoryInfo(@"F:\恐龙园");//****
            string[] filepath = Directory.GetFiles(@"F:\恐龙园");
            FileInfo[] files = new FileInfo[filepath.Length];
            for (int i = 0; i < filepath.Length; i++)
            {
                files[i] = new FileInfo(filepath[i]);
            }
            // Get a reference to each directory in that directory. 
        //    DirectoryInfo[] diArr = di.GetDirectories(); //****        // Display the names of the directories. 
            foreach (FileInfo dri in files) 
                _ListBox文件列表.Items.Add(dri.Name); 
            
            //******************************************    }
     
    }
      

  15.   

    你判断下 IspostPage;如果不是第一次打开页面而是别的页面撤销回来得,就没必要重新绑定了;
    或者每次绑定的时候先把列表控件的所有项给清空了;
    ListBox.clear()
      

  16.   

    你用的是asp.net吗?
    你查下page的IsPostBack属性的用法吧;
      

  17.   

    我在代码前加了 if(IspostPage){}内的代码不执行了。不显示文件了
      

  18.   

    是啊 VS2005 代码语言是C#
      

  19.   

    好了,放在else里了,就行了。不再增加了,虽然不知道为什么。代码如下:
            //********显示文件***************************************
            if (IsPostBack)//如果不是首次加载页面,而是回发提交
            {
            }
            else 
            {
                // Make a reference to a directory.
                string[] filepath = Directory.GetFiles(@"F:\恐龙园");
                // Get a reference to each directory in that directory.
                FileInfo[] files = new FileInfo[filepath.Length];
                for (int i = 0; i < filepath.Length; i++)
                {
                    files[i] = new FileInfo(filepath[i]);
                }
     
                // Display the names of the directories. 
                foreach (FileInfo dri in files)
                    _ListBox文件列表.Items.Add(dri.Name);            //******************************************         }