C#本人菜鸟,想在窗体中放一个treeview,然后在这个中添加链接,链接到文件夹,然后将文件显示在listview中

C#本人菜鸟,想在窗体中放一个treeview,然后在这个中添加链接,链接到文件夹,然后将文件显示在listview中显示文件夹的里面的文件,如果文件夹里还是文件夹的话,双机这个文件名,在listview中就显示子文件夹里面的内容,并可以打开文件,谢谢大侠们!!

这是我试验的一个简单的程序,因为读出内容一般是文本什么的,做了点过滤,listview里只显示了txt,和word文件,当然你可以改,你要过滤的文件,希望可以帮到你

 

 

public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

       //加载驱动器目录

        public void loadtVDirectory()

        {

            DriveInfo[] di = DriveInfo.GetDrives();

            foreach(DriveInfo driver in di)

            {

                TreeNode tnode = new TreeNode(driver.Name);

               

                if(driver.IsReady)

                {

                    tnode.ToolTipText = driver.TotalSize.ToString();

                    tVDirectorys.Nodes.Add(tnode);  //左侧treeview 控件添加借点

                    loadDirectory(Path.GetFullPath(tnode.Text),tnode);

                }

            }

        }

       // 加载指定目录下的文件目录

        public void loadDirectory(string path,TreeNode tNode)

        {

            string[] directorys = Directory.GetDirectories(path); //获取选中treeview节点的子目录

           

            foreach (string item in directorys)

            {

                if ((File.GetAttributes(item) & FileAttributes.Hidden)!= FileAttributes.Hidden)

                {

                TreeNode tnode = new TreeNode(Path.GetFileName(item));

                //tNode.Nodes.Add(tnode);

                tnode.Name = item;

                tnode.ToolTipText = "文件夹" + item; 

                tNode.Nodes.Add(tnode); //选中节点添加子节点

                }

            }

        }

        //加载指定目录下的文本文件和word文档

        public void loadlVFile(string path)

        {

            if (path.Contains("System Volume Information"))

            {

                return;

            }

            string[] files = Directory.GetFiles(path);

            lVFile.Clear();

            foreach (string item in files)

            {

               string eName = Path.GetExtension(item);

               if(eName==".txt"||eName==".doc") //这里我只在listview里面显示文本和word文件

               {

                 lVFile.Items.Add(item);

               }

            }

            lVFile.View = View.List; //设置listview的现实形式

        }

        //激活选择的文件时,将内容加载到rTBShowFile中

        private void lVFile_ItemActivate(object sender, EventArgs e) //点击Listview中得项目,显示内容

        {

            if (lVFile.SelectedItems.Count > 0)

            {

               

.               LoadFile(lVFile.SelectedItems[0].Text,RichTextBoxStreamType.PlainText);

                this.Text = Path.GetFileName(lVFile.SelectedItems[0].Text);

            }

        }


 

        private void Form1_Load(object sender, EventArgs e)

        {

            loadtVDirectory();

        }

       

        private void tVDirectorys_AfterExpand(object sender, TreeViewEventArgs e)

        {

           foreach(TreeNode tnode in e.Node.Nodes)

           {

               tnode.Nodes.Clear();

               loadDirectory(tnode.Name,tnode);

           }

        }


 

        private void tVDirectorys_AfterSelect(object sender, TreeViewEventArgs e)

        {

            loadlVFile(e.Node.FullPath);

        }


    } 

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-12
using System;
using System.IO;

class ListAllFilesDemo
{
public static void Main()
   {
    Console.Write( "请输入要查询的目录: ");
      string dir = Console.ReadLine();
      try
      {
        ListFiles(new DirectoryInfo(dir));
      }
      catch(IOException e)
      {
        Console.WriteLine(e.Message);
      }
    }

  public static void ListFiles(FileSystemInfo info)
  {
    if(!info.Exists) return;
    DirectoryInfo dir = info as DirectoryInfo;
    //不是目录
    if(dir == null) return;
    FileSystemInfo [] files = dir.GetFileSystemInfos();
    for(int i = 0; i < files.Length; i++)
    {
      FileInfo file = files[i] as FileInfo;
      //是文件
      if(file != null)
        Console.WriteLine(file.FullName + "\t " + file.Length);
        //对于子目录,进行递归调用
      else
        ListFiles(files[i]);
    }
  }
}

怎么添加具体内容.就靠你自己了..顶多就给你写到这种地步了撒..本回答被网友采纳
第2个回答  2012-11-11
网上搜下,C#资源管理器项目,很多的

C#本人菜鸟,想在窗体中放一个treeview,然后在这个中添加链接,链接到文 ...
private void tVDirectorys_AfterSelect(object sender, TreeViewEventArgs e){

c#的winform TreeView控件中,展开不同的节点,右边显示不同的内容,该...
可以通过TreeView控件的Items属性添加和删除它的子节点,Items属性的每个元素都是object类型,所以可以包含任意类型的元素,TreeView在显示时会自动通过元素的ToString()方法获取要显示的文本。在这一点上TreeViewItem和TreeView是完全一致的。TreeView控件不包含节点展开和收拢事件(这和Win Form窗体中的Tree控件不同),它包...

如何在C#中如何把一个类放在不同文件中
建两个不同的文件夹,然后用名称空间直接引用就行了

...用户使用这个链接再下载文档。链接如何实现?
比较好的办法是在服务器端建立一个download.aspx页面,在该页面里根据传入的参数进行不同的下载,然后发给用户的地址就如下:http:\/\/110.2.2.2\/download.aspx?id=20160721105831 \/\/注意把IP地址改为实际IP地址,这样当用户点击该链接时,就能自动下载文档了。当然,还要在download.aspx.cs中写些代码...

C#中怎样在窗体打开的时候执行一个动作例如button1_Click
【例1】打开窗体时,模拟鼠标点击命令按钮 using System;using System.Windows.Forms;namespace WindowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { \/\/直接...

如何用C#在一个窗体中画一个矩形
在form的paint中画,用事件里传入的e里面的graphics就直接可以画了

C#中如何在点击一个按钮后,生成新窗口?
在窗口上面从工具箱中拖一个Button按钮上去,然后添加一个对话框(名字为OPEN)到资源管理器中去,然后双击窗口上面的Button按钮,在生产的函数体里面写如下代码就行了:OPEN o=new OPEN();o.showDialog();然后你运行是,双击就会弹出你新建的这个OPEN对话框,挺简单的,加油!

求!!!C#怎样在下一个窗口得到上一窗口的内容,比如说“用户名”_百度知...
1.新建Form1和Form2 2.在Form1中添加一个textBox1和一个Button1 3.在Form1的中申明一个静态变量:public static string UserName;4.然后在Button的Click事件里面写代码:private void button1_Click(object sender, EventArgs e){ UserName = textBox1.Text;Form2 f2 = new Form2();f2.Show();...

C# 网站调用 插件链接一个读卡器,实现网页读卡写卡操作
采用插入object方式只能使用与IE浏览器,建议采用友我科技RFID读写器云服务技术。不仅适用于IE,还支持Chrome,Firfox,safari,Opera等各种主流的浏览器,开发起来也很简单,支持的IC卡读卡器有YW-607和YW-605HA等等。RFID读写器云服务开发指南

菜鸟求助PHP字符替换的问题
那位高手能把下面这个java程序改进一下 不论在什么方面 做一些改良!! 谁知道在C++ BUILDER里面怎么去掉即时帮助吗?(输入代码时,它自动会给出一些代码的参数什么的!) 请教用DELPHI制作一个查询学校学生成绩的数据库系统该先具备些什么条件? 我下载了两个echangserer2000都是解压倒一定时候是就出错然后就不能进行了...

相似回答