📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace 目录树
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
BuildTreeView(textBox1.Text);
}
string FileSizeString(long fileSize)
{
const long OneMB = 1024 * 1024;
const long OneGB = OneMB * 1024;
string unit;
double dispSize;
if (fileSize < 1024)
{
unit = "bytes";
dispSize = fileSize;
}
else if (fileSize < OneMB)
{
unit = "KB";
dispSize = fileSize / 1024;
}
else if (fileSize < OneGB)
{
unit = "MB";
dispSize = fileSize / OneMB;
}
else
{
unit = "GB";
dispSize = fileSize / OneGB;
}
return string.Format("({0,4:F}",dispSize)+unit+")";
}
long AddDirectory(DirectoryInfo dir, TreeNode tNode)
{
FileSystemInfo[] fSIs = dir.GetFileSystemInfos();
FileSystemInfo fSI;
int i;
long directorySize = 0;
for (i = 0; i < fSIs.Length; i++)
{
fSI = fSIs[i];
if (fSI.GetType() == typeof(FileInfo))
{
FileInfo fInfo = (FileInfo)fSI;
string s = fInfo.Name + FileSizeString(fInfo.Length);
TreeNode newTreeNode = new TreeNode(s);
tNode.Nodes.Add(newTreeNode);
directorySize += fInfo.Length;
}
else if (fSI.GetType() == typeof(DirectoryInfo))
{
DirectoryInfo dirInfo = (DirectoryInfo)fSI;
TreeNode dirTreeNode = new TreeNode(dirInfo.Name);
long dirSize = AddDirectory(dirInfo,dirTreeNode);
dirTreeNode.Text += FileSizeString(dirSize);
tNode.Nodes.Add(dirTreeNode);
directorySize += dirSize;
}
else
MessageBox.Show("Ooops");
}
return directorySize;
}
private void BuildTreeView(string dirName)
{
DirectoryInfo dirInfo = new DirectoryInfo(dirName);
TreeNode tNode = new TreeNode(dirName);
long totalSize = AddDirectory(dirInfo,tNode);
tNode.Text += FileSizeString(totalSize);
treeView1.Nodes.Clear();
treeView1.Nodes.Add(tNode);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -