简单文件管理器

要求:在文本框中输入要添加文件的路径,根据地址,点击添加将文本文件添加到TreeView中,然后双击文件在右边的TxtBox中显示出来(此处文本文件定义为txt格式)。

Tips: ->获得指定目录中的子目录名: System.IO.Directory.GetDirectories(path);

惯例是先加文件夹。

首先声明两个存放文本文件和文件夹文件路径的数组:

            string[] filePath = System.IO.Directory.GetFiles(path,"*.txt");
string[] filesPath = System.IO.Directory.GetDirectories(path);

此时两个数组里存放的都是路径,那么如何通过文件或者文件夹的路径得到文件的文件名及后缀呢?

使用System.IO.Path.GetFileName(),再用for循环分别遍历两个数组,就得到文件名了。

接下来的问题是,为Treeview添加一个父节点:

TreeNode tn = treeView.Nodes.Add(string.Format("解决方案'{0}'", System.IO.Path.GetFileName(path)));

然后把文件和文件夹放入父节点下,就可以了。但是有一个很大的问题:如果子节点下还有子节点,另一个子节点下还有……那么要添加多少次了?答案是有多少添加多少次。所以我们可以添加一个专门处理节点和路径的方法,简单的递归,自己调用自己的方法。

完整代码:

        private void InTreeView(TreeNode tn, string path)
{
string[] filePath = System.IO.Directory.GetFiles(path,"*.txt");
string[] filesPath = System.IO.Directory.GetDirectories(path);
for (int i = 0; i < filesPath.Length; i++)
{
TreeNode tn1 = tn.Nodes.Add(System.IO.Path.GetFileName(filesPath[i]));
InTreeView(tn1, filesPath[i]);
}
for (int i = 0; i < filePath.Length; i++)
{
TreeNode tn2 = tn.Nodes.Add(System.IO.Path.GetFileName(filePath[i]));
tn2.Tag = filePath[i];
}
}

在添加按钮里调用InTreeView方法:

        private void btnAdd_Click(object sender, EventArgs e)
{
treeView.Nodes.Clear();
string path = txtPath.Text.Trim();
if (!System.IO.Directory.Exists(path))
{
MessageBox.Show("输入的路径不存在!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
TreeNode tn = treeView.Nodes.Add(string.Format("解决方案'{0}'", System.IO.Path.GetFileName(path)));
InTreeView(tn, path);

treeView.ExpandAll();
}

这样添加文件路径之后就可以在TreeView里面查看到它的树状结构了。

下一个问题就是如何让txt文件内容在TextBox里面显示出来呢?答案是为TreeView添加一个鼠标双击事件:

        private void treeView_MouseDoubleClick(object sender, MouseEventArgs e)
{
TreeNode tn = treeView.SelectedNode;
string context = System.IO.File.ReadAllText(tn.Tag.ToString(),Encoding.Default);
txtContext.Text = context;
}

OK!

转载于:https://www.cnblogs.com/honeybeautiful/archive/2012/02/15/2353349.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值