文件操作

       文件操作一些方法介绍

Path 对路径 字符串进行操作

        获得后缀GetExtension

        能合并路径

        获取文件名

DirectoryDirectoryInfo  对目录进行操作

        判断目录是否存在

        创建目录

        删除目录

        获取目录下所有的子目录

        获取目录下所有的子文件

       

FileFileInfo  对文件进行操作

        读文件

        写文件

        追加文件

        判断文件是否存在

        创建文件

        删除文件

Path方法介绍

ChangExtension  更改文件后缀名

string path = "c:\\abc\\bcd\\123\\xxx.rmvb";

            更改后缀名

            //path =  Path.ChangeExtension(path, "jpg");

            //Console.WriteLine(path);

Combine 合并路径

Console.WriteLine(Path.Combine("c:\\abc", "xxx.avi"));

GetDirectoryName 获取文件的目录

Console.WriteLine(Path.GetDirectoryName(path));

GetExtension 获取目录后缀名 这个是带点的

Console.WriteLine(Path.GetExtension(path));

GetFileName 获取文件名

Console.WriteLine(Path.GetFileName(path));

GetFileNameWithoutExtension

Console.WriteLine(Path.GetFileNameWithoutExtension(path));

操作目录 DirectoryDirectoryInfo

Directory是静态的类

DirectoryInfo 不是静态的类 必须实例化

Directory不能返回文件夹的名称

DirectoryInfo能返回文件夹名称

DirectoryInfo di =new DirectoryInfo("文件路径");

di.Name;//文件夹名称

di.FullName;//文件夹全路径

FileFileInfo  对文件进行操作

文件的增:

将现有文件复制到新文件。允许覆盖同名的文件。

File.Copy(string sourceFileName,string destFileName);

创建或覆盖具有指定的缓冲区大小、文件选项和安全性的指定文件。

File.Create();

创建或打开一个文件用于写入UTF-8编码的文本。

File.CreateText();

打开一个文件,往文件中追加指定的字符串,然后关闭该文件。如果文件不存在,则创建之,然后追加关闭。

AppendAllText(string path,string content)

文件的删除:

删除指定的文件。如果指定的文件不存在,则不引发异常

File.Delete();

文件的修改:

将指定文件移动到新位置,并提供指定新文件名的选项。

File.Move

文件的查找:

判断文件是否存在

File.Exists

文件的其他操作:

打开指定路径上的,具有指定的读、写或读\写访问模式以及指定的共享选项

File.Open

打开现有文件进行读取

File.OpenRead

打开现有文件进行写入

File.OpenWrite

FileInfo fi=new FileInfo("1.txt");

fi.FullName;获取目录或文件的完整目录

fi.Name;获取文件名;

treeview 控件介绍

打开一个文件,往文件中追加指定的字符串,然后关闭该文件。如果文件不存在,则创建之,然后追加关闭。

要知道你当前选中那个树形节点 可以通过treevieweventargs e中的属性来获得

e.Node.Text//获取当前你选中节点的文本

要想知道你选中的是父节点 还是子节点 可以通过e.Node.Level可以知道

e.Node.Tag//获取当前你选中节点的路径

动态的往treeview中添加节点

当界面加载的时候

1.0清空节点

树形名称(treeView1)

treeView1.Nodes.Clear();

2.0添加根节点

TreeNode tn=treeView1.Nodes.Add("根节点");

tn.Node.Add("子节点");

还有一种方法

创建节点

TreeNode parent=new TreeNode();

parent.Text="根节点";

parent.tag="-1";存放文件路径

treeView1.Nodes.Add(parent);

treeView1.ExpandAll();//展开treeview控件

treeView1.CollapseAll();//收缩控件

文件流操作

创建文件流

FileStream fs =new FileStream("c:\\1.txt",FileMode.Open);

创建文件流的一种简洁形式

FileStream fs=File.OpenRead("c:\\1.txt")

把字节转换成字符串Encoding.UTF8.GetString(buffer,0,n);

//字符串变成字节数组

string str="123fsese";

byte[] bytes=Encoding.UTF8.GetBytes(str);

streamWriter对流的操作 就是先把你要写入的文本放到一个缓存空间里面

StreamWriter sw=new StreamWriter(fs);

sw.Write("你好");

然后通过通过Flush显示出来 就是让缓冲区中的数据清空 把数据放入到基础流里面

sw.Flush();

文件操作案例:

namespace _01递归实现文件显示

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void textBox1_TextChanged(object sender, EventArgs e)

        {

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            //当页面加载的时候显示阅读器目录

            //定义一个根节点

            string path="c://txt";

            TreeNode tn0 = tvContent.Nodes.Add(path);

            tn0.Text = "福尔摩斯侦探小说";

            tn0.Tag = path;

            LoadContentHelper(tn0);

        }

        //定一个方法用来递归查询目录和文件

        public static void LoadContentHelper(TreeNode tn)

        {

           //得到目录路径

            string path = tn.Tag as string;

            //判断路径是否为空

            if (path == null)

            {

                return;

            }

            //查询目录下的所以子目录

            string[] dirs = Directory.GetDirectories(path);

            //查询目录下的所有子文件

            string[] files = Directory.GetFiles(path);

            //循环遍历子目录

            foreach (string item in dirs)

            {

                //添加子节点

                TreeNode tn1 = tn.Nodes.Add(item);

                tn1.Tag = item;

                tn1.Text = Path.GetFileName(item);

                //判断item是否是目录 如果是目录继续递归调用 不过这里就不用了

                LoadContentHelper(tn1);

            }

            //遍历文件

            foreach (string item in files)

            {

                TreeNode tn2 = tn.Nodes.Add(item);

                tn2.Text = Path.GetFileName(item);

                tn2.Tag = item;

            }

        }

        private void tvContent_AfterSelect(object sender, TreeViewEventArgs e)

        {

            TreeNode tn=e.Node;//选中当前的节点

            //读取文件内容

            string path = tn.Tag as string;

            if (path == null) return;

            //string strContent=File.ReadAllText(path);

            if (File.Exists(path))

            {

                //string strContent = File.ReadAllText(path);

               

                txtContent.Text = File.ReadAllText(path,Encoding.Default);

               

               

            }

        }

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值