using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using System.Windows.Forms;
 
namespace Files
{
    public class Node : TreeNode
    {
        public Data data;
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using System.ComponentModel;
 
namespace Files
{
    public class Data
    {
        [ Category ("Basic") ]
        public string Name { get; set; }
 
        [ Category("Basic")]
        [ DisplayName ("Full path")]
        public string Path { get; set; }
 
        [Category("Basic")]
        [ Description ("File size in bytes")]
        public long Size { get; set; }
 
        [Category("Basic")]
        [ Description("Last write time in UTC")]
        public DateTime Time { get; set; }
 
        [ Browsable (false) ]
        public bool Directory { get; set; }
 
        public bool Ready { get; set; }
 
    }
}
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 Files
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            // using System.IO;
            treeView1.ShowNodeToolTips = true;
            DriveInfo[] disks = DriveInfo.GetDrives ();
            foreach (var disk in disks)
            {
                Display (treeView1.Nodes, disk.RootDirectory, 2);
            }
 
        }
 
        private void Display (TreeNodeCollection branch, 
                              DirectoryInfo dir,
                              int level)
        {
            var node = new Node();
            node.Text = dir.Name;
            node.ToolTipText = dir.FullName;
 
            node.data = new Data();
            node.data.Name = dir.Name;
            node.data.Path = dir.FullName;
            node.data.Time = dir.LastWriteTimeUtc;
            node.data.Directory = true;
 
            branch.Add (node);
 
            if (level > 1)
                DisplaySubdir (node, dir, level-1);
        }
 
        private void DisplaySubdir (Node target,
                                    DirectoryInfo dir,
                                    int level)
        {
            try
            {
                foreach (var subdir in dir.GetDirectories())
                    Display (target.Nodes, subdir, level - 1);
 
                foreach (var file in dir.GetFiles())
                    DisplayFile (target.Nodes, file);
 
                target.data.Ready = true;
            }
            catch (Exception ex)
            {
                var info = new TreeNode();
                info.Text = ex.Message;
                info.ToolTipText = ex.StackTrace;
                info.ForeColor = Color.Red;
                target.Nodes.Add(info);
            }
        }
        private void DisplayFile (TreeNodeCollection branch,
                                  FileInfo file)
        {
            var node = new Node();
            node.Text = file.Name;
            node.ToolTipText = file.FullName;
 
            node.data = new Data();
            node.data.Name = file.Name;
            node.data.Path = file.FullName;
            node.data.Size = file.Length;
            node.data.Time = file.LastWriteTimeUtc;
 
            branch.Add(node);
        }
 
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node is Node)
            {
                var data = (e.Node as Node).data;
                propertyGrid1.SelectedObject = data;
            }
            else
            {
                propertyGrid1.SelectedObject = null;
            }
        }
 
        private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            foreach (TreeNode t in e.Node.Nodes)
                if (t is Node)
                {
                    Node n = t as Node;
                    if (n.data.Directory && ! n.data.Ready)
                        DisplaySubdir (n, new DirectoryInfo(n.data.Path), 2);
                }
 
        }
 
        private void quitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }
 
    }
}
 
soubory2017.txt · Last modified: 2017/11/20 17:12 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