C#基础(19)——path、File类的基本操作

来源:互联网 发布:达芬奇 知乎 编辑:程序博客网 时间:2024/05/28 17:04

1、path类

F12转到定义,这是静态类,可以[类名].方法名:
这里写图片描述
以前的方法截取字符串:

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Path类{    class Program    {        static void Main(string[] args)        {            string path = @"C:\Users\Administrator\Desktop\test.txt";            int index = path.LastIndexOf("\\");            string str = path.Substring(index+1);            Console.WriteLine(str);            Console.ReadKey();        }    }}

取文件夹名、扩展名和后缀:

这里写图片描述

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Path类{    class Program    {        static void Main(string[] args)        {            string path = @"C:\Users\Administrator\Desktop\test.txt";            string str = Path.GetFileName(path);            Console.WriteLine(str);            Console.WriteLine("没有扩展名:{0}",Path.GetFileNameWithoutExtension(path));            Console.WriteLine("取扩展名:{0}", Path.GetExtension(path));            Console.WriteLine("文件夹名路径:{0}", Path.GetDirectoryName(path));            Console.WriteLine("全路径:{0}", Path.GetFullPath(path));            Console.WriteLine("组合路径:{0}", Path.Combine(path,"my.txt"));            Console.ReadKey();        }    }}

2、File类

用于创建、写入文件等,如创建:

 string path = @"C:\Users\Administrator\Desktop\test.txt";            File.Create(path);            Console.WriteLine("创建成功!");//已存在,会被覆盖            Console.ReadKey();

删除文件:

 string path = @"C:\Users\Administrator\Desktop\test.txt";            File.Delete(path);            Console.WriteLine("删除成功!");//彻底删除,不能恢复            Console.ReadKey();

拷贝文件:

string path = @"C:\Users\Administrator\Desktop\test.txt";            File.Create(path);//出问题:            //其他信息: 文件“C:\Users\Administrator\Desktop\test.txt”正由另一进程使用,因此该进程无法访问此文件。            File.Copy(path, @"C:\Users\Administrator\Desktop\test1.txt");            Console.ReadKey();

3、文件的读取

去读取行,只能读取小文件,因为它是读取全部到内存,返回string 的数组:

 string[] contains=File.ReadAllLines(path);            for (int i = 0; i < contains.Length; i++)            {                Console.WriteLine(contains[i]);            }

用ReadAllText,返回string:

string path = @"C:\Users\Administrator\Desktop\test.txt";            string str = File.ReadAllText(path);            Console.WriteLine(str);

以上只用于处理文本,当为视频图像时:

string path = @"C:\Users\Administrator\Desktop\test.txt";            byte[] btys = File.ReadAllBytes(path);            //将字节数组中的每一个元素按照我们指定的编码格式解码成字符串            //utf-8 GB2312 GBK  ASCII Unicode            string s = Encoding.Default.GetString(btys);            Console.WriteLine(s);

4、文件的写入

以字节形式:

string path = @"C:\Users\Administrator\Desktop\new.txt";            string str = "今天天气好晴朗,处处好风光!";            byte[] buffer = Encoding.Default.GetBytes(str);            File.WriteAllBytes(path, buffer);            Console.WriteLine("Write Down");

以WriteAllLine形式:

string path = @"C:\Users\Administrator\Desktop\new.txt";            File.WriteAllLines(path, new string[] { "111", "222", "333", "444" });            Console.WriteLine("Write Down");

以WriteAllText

string path = @"C:\Users\Administrator\Desktop\new.txt";            File.WriteAllText(path, "111\r\n2222\r\n333");            Console.WriteLine("Write Down");

5、文件的追加

文件的追加,不会覆盖和删除原文件,相当于Python的with open(‘haproxy’, ‘a’, encoding=’utf-8’) as f1:
方法1:

string path = @"C:\Users\Administrator\Desktop\new.txt";            File.AppendAllText(path, "我是新来的。");            Console.WriteLine("Write Down");

方法2:

 string path = @"C:\Users\Administrator\Desktop\new.txt";            File.AppendAllLines(path,new string[] {"aaaaa"});            Console.WriteLine("Write Down");

6、绝对路径和相对路径

绝对路径:通过电脑给定的完整路径
相对路径:可执行路径下的路径“new.txt”,bin→debug下
所以我们在开发时尽量使用相对路径

7、文件流

解决读取内容过小问题,处理大文件

原创粉丝点击