当前位置:编程学习 > C#/ASP.NET >>

怎样用treeview制作一个类似资源管理器但是只显示文件夹和TXT文件的东西啊

--------------------编程问答-------------------- 代码不会写啊 --------------------编程问答-------------------- 你这是要做成winform还是?winform好说 如果是webform 你那个树形目录点击到最后节点显示的是文件??这个有点难处理了 估计得用active插件。 --------------------编程问答--------------------
判断一下好了  只要有.的  就让他可以选中!!!
--------------------编程问答--------------------
引用 2 楼  的回复:
你这是要做成winform还是?winform好说 如果是webform 你那个树形目录点击到最后节点显示的是文件??这个有点难处理了 估计得用active插件。

是winform 
--------------------编程问答-------------------- 现在在网上找了段代码,弄出来的效果是只有文本的没有图片的,是“我的电脑”为根目录的,而且全部文件都显示出来了。我不是很看得懂,帮我看看要怎么改?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form4 : Form
    {
        public Form4()
        {
            InitializeComponent();

            TreeNode root = new TreeNode();
            root.Text = "My computer";
            root.Tag = "Root";

            this.treeView1.Nodes.Add(root);
            TreeNode fakeNode = new TreeNode();
            root.Nodes.Add(fakeNode);
        }

        private void ShowDrives(TreeNode node)
        {
            DriveInfo[] drives = DriveInfo.GetDrives();

            foreach (DriveInfo drive in drives)
            {
                TreeNode n = new TreeNode();
                n.Text = drive.Name;
                n.Tag = drive;

                if (drive.IsReady && (drive.RootDirectory.GetDirectories().Length > 0 || drive.RootDirectory.GetFiles().Length > 0))
                {
                    TreeNode fakeNode = new TreeNode();
                    n.Nodes.Add(fakeNode);
                }
                node.Nodes.Add(n);
            }
        }
        private void ShowRootDirectoriesAndFiles(TreeNode node)
        {
            DriveInfo drive = node.Tag as DriveInfo;
            if (drive != null)
            {
                DirectoryInfo[] directories = drive.RootDirectory.GetDirectories();
                FileInfo[] files = drive.RootDirectory.GetFiles();

                BindDirectoriesAndFiles(node, directories, files);
            }
        }

        private void ShowDirectoriesAndFiles(TreeNode node)
        {
            DirectoryInfo directory = node.Tag as DirectoryInfo;

            if (directory != null)
            {
                DirectoryInfo[] directories = directory.GetDirectories();
                FileInfo[] files = directory.GetFiles();
                BindDirectoriesAndFiles(node, directories, files);
            }
        }

        private void BindDirectoriesAndFiles(TreeNode node, DirectoryInfo[] directories, FileInfo[] files)
        {
            foreach (DirectoryInfo dir in directories)
            {
                TreeNode n = new TreeNode();
                n.Text = dir.Name;
                n.Tag = dir;

                try
                {
                    if (dir.GetDirectories().Length > 0 || dir.GetFiles().Length > 0)
                    {
                        TreeNode fakeNode = new TreeNode();
                        n.Nodes.Add(fakeNode);
                        n.ImageIndex = 1;
                    }
                }
                catch
                {
                }

                node.Nodes.Add(n);
            }
            foreach (FileInfo file in files)
            {
                TreeNode n = new TreeNode();
                n.Text = file.Name;
                n.Tag = file;
                node.Nodes.Add(n);
            }
        }

        private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            e.Node.Nodes.Clear();
            DisposeNodes(e.Node);
        }


        private void DisposeNodes(TreeNode node)
        {
            switch (node.Tag.GetType().ToString().Split('.')[node.Tag.GetType().ToString().Split('.').Length - 1])
            {
                case "DriveInfo":
                    {
                        ShowRootDirectoriesAndFiles(node);
                        break;
                    }
                case "DirectoryInfo":
                    {
                        ShowDirectoriesAndFiles(node);
                        break;
                    }
                case "FileInfo":
                    {
                        FileInfo file = node.Tag as FileInfo;
                        TreeNode n = new TreeNode();
                        n.Text = file.Name;
                        n.Tag = file;

                        node.Nodes.Add(n);
                        break;
                    }
                default:
                    {
                        ShowDrives(node);
                        break;
                    }
            }

        }

        private void treeView1_AfterCollapse(object sender, TreeViewEventArgs e)
        {

        }
    }
}
--------------------编程问答-------------------- 这根数据库没有关系 。你的需求不多 代码也不复杂  网上都有 --------------------编程问答--------------------
引用 6 楼  的回复:
这根数据库没有关系 。你的需求不多 代码也不复杂 网上都有

关键是看不懂啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,