步步为营-16-资料管理器

说明:涉及到知识点:TreeView控件,递归调用,

1 先把架子搭起来

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 资料管理
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //1获取文件路径
            string path = @"E:\Java开发实战经典";
            //2加载文件目录
            LoadFileName(path, TV.Nodes);
        }

        private void LoadFileName(string path,TreeNodeCollection tn)
        {
            //3根据传来的路径获取文件夹名--此时获取的是路径全名
            string[] directories = Directory.GetDirectories(path);
            //4 获取文件名
            string[] files = Directory.GetFiles(path);

            TreeNode tc;
            foreach (string item in directories)
            {
                //5获取文件夹名
                string directoriesNames = Path.GetFileName(item);
                tc= tn.Add(directoriesNames);
                LoadFileName(item,tc.Nodes);
            }
            foreach (string item in files)
            {
                //6获取文件名
                string fileNames = Path.GetFileName(item);
                tc=tn.Add(fileNames);
            }
        }
    }
}

2 当点击某个文件时,对文件进行操作

  private void TVNodeClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            //如果点击文件夹,是没有效果的
            if (TV.SelectedNode.Tag!=null)
            {
                string filePath = TV.SelectedNode.Tag.ToString();
                textBox1.Text = File.ReadAllText(filePath, Encoding.Default);
            }
        } 

3 进一步对文件进行修改

        private void btnSave_Click(object sender, EventArgs e)
        {
            string filePath = TV.SelectedNode.Tag.ToString();
            string fileType = Path.GetExtension(filePath);
            if (!fileType.Contains("txt"))
            {
                MessageBox.Show("只能修改txt文本文件");
            }
            else
            {
                File.WriteAllText(filePath, textBox1.Text, Encoding.UTF8);
                MessageBox.Show("文件修改成功!");
            }

        } 

时间: 2024-10-14 03:46:22

步步为营-16-资料管理器的相关文章

第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case

第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case SqlHelper using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Text; namespace _02省市联动 { public static  class SqlHelper { //

使用TreeView+ListBox+TxtBox 资料管理器

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.IO; namespace 资料管理器 { pu

第16章 调色板管理器_16.1 调色板原理和使用

16.1 调色板的使用 16.1.1 调色板原理 注意: ①使用调色板前要创建逻辑调色板,选入并实现调色板.在映射过程中,逻辑调色板中的颜色会被相等匹配.或近似匹配.或新增加进系统调色板中(见后面分析) ②Windows规定,活动窗口(标题栏高亮显示的程序)的逻辑调色板(如果有的话)具有最高的实现优先权,这是因为活动窗口是当前与用户交互的窗口,应该保证其有最佳的颜色显示.非活动窗口的优先权是按Z顺序自上到下确定的(Z顺序就是重叠窗口的重叠顺序).活动窗口有权将其逻辑调色板作为前景调色板实现,非活

怎么使用密码管理器如keepass更安全?

如今的网络世界,到处都需要密码,你肯定有一堆网络服务的密码资料:网络帐号.电子邮件.银行卡--这么多的帐号和密码,管理起来是个很麻烦的事情:记在脑子里大部分是做不到:记在纸上不安全,万一丢了就全没了:记在电子文档里相对安全(得加个密码),但总不方便,因为并不是随时都可以查看. KeePassPassword Safe(简称KeePass),是一款免费开源的密码管理软件,通过它,你只要记住一个主密码就可以管理你所有的网络帐号和密码了,并且KeePass会生成一个数据库文件,保存好这个数据库文件就等

RAID和逻辑卷管理器(LVM)

什么是RAID    RAID:RedundantArrays of Inexpensive(Independent)Disks 廉价的独立磁盘    1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)"A Case for Redundant Arrays of Inexpensive Disks"    多个磁盘合成一个"阵列"来提供更好的性能.冗余,或者两者都提供    RAID    提高IO能力   

【NOI2015】软件包管理器

Description 你决定设计你自己的软件包管理器.不可避免的,你要解决软件包之间的依赖关系.如果A依赖B,那么安装A之前需安装B,卸载B之前须卸载A.0号软件包不依赖任何软件包.依赖关系不存在环(包括自环). 你的任务是,求出每次安装.删除操作会改变多少个包的状态. 安装一个已安装的软件包,或者卸载一个未安装的软件包,都不会改变任何软件包的安装状态,即在此情况下,改变安装状态的软件包数为0 每次操作不仅需要计算安装软件包数,还作为操作影响后来的安装/删除 Input 第一行一个整数n,表示

rpm程序包管理器详解

1. 程序包管理器的功能 我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用,对于普通用户来说有一定难度.因此为了降低普通用户对应用程序的使用难度,程序员可在提供源代码的同时提供已在特定环境下编译好的程序文件,只要用户的平台环境和程序员的平台环境相同,就可以通过解压程序员提供的二进制格式文件即可使用,而无需自己手动编译安装. 一个已编译好的程序由二进制程序.库文件.配置文件和帮助手册等组成,而程序包管理器的功能就

【Swing 2】布局管理器上

很苦逼的是,每次想记录一个小程序,发现,要给别人讲清楚,总是得分很多模块讲解. 所以今天来讲下Swing组件的三大布局管理器. 参考:<Head First Java>第十三章 1. BorderLayout--边界布局 2. FlowLayout--顺序布局 3. BoxLayout--不知道叫啥 1. BorderLayout(边界布局) 该管理器把背景分成东南西北中五大块,这是框架默认的布局管理器 1 package demo; 2 3 import javax.swing.*; 4 i

mount挂载,dd 工具,配置配额系统,RAID阵列,逻辑卷管理器LVM

mount mount挂载 vim /etc/fstab 将常用的挂载的设备写入系统表中 文件挂载配置文件 /etc/fstab /etc/fstab每行定义一个要挂载的文件系统: 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序 要挂载的设备或伪文件系统: 设备文件.LABEL(LABEL="").UUID(UUID="").伪文件系统名称(proc, sysfs) 挂载选项:defaults 转储频率:0:不做备份 每天转储 每隔一天