public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Init();
}
private void Init()
{
string targetPath = "D:\\TW_DATA";
treeView1.Nodes.Add("TW_LOG"); //添加第一个节点最为标题,其他节点添加到主节点下面
TreeNode rootNode = treeView1.Nodes[0];
ExtractAllFilesToNode(targetPath, rootNode);
}
/// <summary>
/// 将指定路径下的所有文件添加到parentNode下
/// </summary>
/// <param name="parentPath">指定的路径</param>
/// <param name="parentNode">指定的根节点</param>
private void ExtractAllFilesToNode(string parentPath, TreeNode parentNode)
{
try
{
if (Directory.Exists(parentPath))
{
string[] subDirNames = Directory.GetDirectories(parentPath);
string[] subFileNames = Directory.GetFiles(parentPath);
for (int j = 0; j < subFileNames.Length; j++) //是文本文件就创建该新节点添加到指定的父节点
{
parentNode.Nodes.Add(Path.GetFileNameWithoutExtension(subFileNames[j]));
parentNode.LastNode.Tag = subFileNames[j]; //当前节点添加进去就是最后一个节点,用LastNode定位到它
}
for (int j = 0; j < subDirNames.Length; j++) //是文件夹就递归找到所有文件
{
parentNode.Nodes.Add(Path.GetFileName(subDirNames[j])); //文件夹也要加节点
ExtractAllFilesToNode(subDirNames[j], parentNode.LastNode);
}
}
}
catch (Exception)
{
}
}
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
int linesCount = 0;
if (treeView1.SelectedNode == null)
{
return;
}
try
{
linesCount = Convert.ToInt32(comboBox1.Text);
if (linesCount > 999 || linesCount < 0)
{
MessageBox.Show("请输入0-999之间的整数");
}
}
catch (Exception)
{
return;
}
try
{
if (treeView1.SelectedNode.Nodes.Count < 1)
{
textBox1.Clear();
using (StreamReader reader = new StreamReader(treeView1.SelectedNode.Tag.ToString(), Encoding.Default))
{
for (int i = 0; i < linesCount; i++)
{
string line = reader.ReadLine();
if (line == null)
{
break;
}
textBox1.AppendText(line + "\r\n");
}
}
}
}
catch (Exception)
{
}
}
}