[[soubory]]
 
using System.Windows.Forms;
 
namespace Soubory
{
    public class MyTreeNode : TreeNode
    {
        public string path;
        public bool scanned;
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
 
namespace Soubory
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            showDisks();
        }
 
        private void testToolStripMenuItem_Click(object sender, EventArgs e)
        {
            showDisks();
        }
 
        private void showDisks ()
        {
            // using System.IO;
            // using System.Windows.Forms;
            DriveInfo [] drives = DriveInfo.GetDrives ();
            // for (int i = 0; i < drives.Length; i++)
            foreach (DriveInfo d in drives)
            {
                MyTreeNode node = new MyTreeNode ();
                node.path = d.Name;  // <--
                node.Text = d.Name;
                treeView1.Nodes.Add (node);
                showDir (node, d.RootDirectory, 1); // <--
            }
        }
 
        private void showDir (MyTreeNode above, DirectoryInfo dir, int level)
        {
            try
            {
                above.scanned = true; // <--
                DirectoryInfo [] directories = dir.GetDirectories();
                foreach (DirectoryInfo d in directories)
                {
                    MyTreeNode node = new MyTreeNode();
                    node.path = d.FullName; // <--
                    node.Text = d.Name;
                    node.ToolTipText = d.FullName;
                    above.Nodes.Add (node);
                    if (level > 1)
                        showDir (node, d, level-1);
                }
            }
            catch (Exception e)
            {
                /*
                TreeNode node = new TreeNode();
                node.Text = "" + e;
                node.ForeColor = Color.Red;
                above.Nodes.Add(node);
                */
            }
        }
 
        private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            MyTreeNode node = e.Node as MyTreeNode;
            if (node != null)
                rescanDir (node, 2);
        }
 
        private void rescanDir (MyTreeNode above, int level)
        {
            if (above.scanned)
            {
                if (level > 1)
                   foreach (MyTreeNode node in above.Nodes)
                       rescanDir (node, level-1);
            }
            else
            {
                showDir (above, new DirectoryInfo(above.path), level);
            }
        }
 
 
    }
}
 
soubory.txt · Last modified: 2013/11/19 13:08 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki