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

C#本人菜鸟,想在窗体中放一个treeview,然后在这个中添加链接,链接到文件夹,然后将文件显示在listview中显示文件夹的里面的文件,如果文件夹里还是文件夹的话,... C#本人菜鸟,想在窗体中放一个treeview,然后在这个中添加链接,链接到文件夹,然后将文件显示在listview中显示文件夹的里面的文件,如果文件夹里还是文件夹的话,双机这个文件名,在listview中就显示子文件夹里面的内容,并可以打开文件,谢谢大侠们!! 展开
 我来答
百度网友445d40b
2012-11-11 · TA获得超过146个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:148万
展开全部

这是我试验的一个简单的程序,因为读出内容一般是文本什么的,做了点过滤,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);

        }


    } 

Ben
2012-11-12 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
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]);
    }
  }
}

怎么添加具体内容.就靠你自己了..顶多就给你写到这种地步了撒..
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫色浪漫眼
2012-11-11 · TA获得超过247个赞
知道小有建树答主
回答量:577
采纳率:100%
帮助的人:145万
展开全部
网上搜下,C#资源管理器项目,很多的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式