【C#基础知识】——File(文件操作)Path类

来源:互联网 发布:ubuntu nginx启动脚本 编辑:程序博客网 时间:2024/05/28 09:32

Path静态类

Path是静态类。只适用于操作路径的类。

  • Path常用的方法:
1 . Path.GetFileName(string path)
获得指定的路径文件的名字和扩展名。
 string str = @"D:\paths\gaosan.txt"; //// 获得文件的名字,返回字符串 string name = Path.GetFileName(str); Console.WriteLine(name);

文件名


2 . Path.GetFileNameWithoutExtension(string path);
获得指定的路径文件的名字,但是不包含扩展名。
// 获得文件的名字,但是不包含扩展名Console.WriteLine(Path.GetFileNameWithoutExtension(str));

这里写图片描述


3 . Path.GetExtension(string path);
获得指定的路径文件的扩展名。
 // 获得文件的扩展名 Console.WriteLine(Path.GetExtension(str));

这里写图片描述


4 . Path.GetDirectoryName(string path);
获得指定的路径文件所在的文件夹的名称。
 // 获得此文件所在的文件夹的名称 Console.WriteLine(Path.GetDirectoryName(str));

这里写图片描述


5 . Path.GetFullPath(string path);
获得指定路径文件所在的全路径。(绝对路径)
 // 获得文件所在的全路径 Console.WriteLine(Path.GetFullPath(str));

这里写图片描述


6 . Path.Combine(params string[] paths);
将字符串数组组合成一个路径。(连接两个字符串作为路径)
 // 将字符串数组组合成一个路径(连接两个字符串作为路径) Console.WriteLine(Path.Combine(@"c:\a\" + "b.txt"));

这里写图片描述



File类(文件操作)

File 也是一个静态类,操作文件。

  • File常用的方法:
1 . File.Create(string path);
在指定的路径中创建文件或覆盖文件。
//*** File 静态类string path = @"D:\paths\gaosan.txt";// 在指定的路径中创建文件或覆盖文件File.Create(@"D:\paths\gaosan.txt");Console.WriteLine("创建成功");

这里写图片描述


2 . File.Delete(string path);
删除指定的文件。
 // 删除指定的文件 File.Delete(path);

这里写图片描述


3 . File.Copy(string sourceFileName,string destFileName,bool overwrite);
将现有的文件复制到一个新文件;(给第三个参数添加 true 表示当文件存在时允许覆盖,如果不添加 true,当文件存在时会报异常)
 // 复制一个文件(你要复制的文件,新文件) true 表示当文件存在时 "覆盖",如果不加 true ,则文件存在会报异常 File.Copy(@"D:\paths\gaosan.txt",@"D:\paths\CSDN.txt",true);

这里写图片描述


4 . File.Move(string sourceFileName ,string destFileName);
将指定文件移动(剪切)到新的位置,并提供指定新文件名。(注意新文件名不能在指定的路径中重复否则会报错)
// 将文件移动(剪切)到新的位置,并提供指定新文件名File.Move(@"D:\paths\gaosan.txt",@"D:\paths\gaosan\gaosan.txt");

5 . File.Exists(string path);
判断指定文件是否存在。存在返回True,不存在返回 False。
// 判断文件是否存在Console.WriteLine(File.Exists(@"D:\paths\gaosan.txt"));

这里写图片描述



File 对文件的读写

  • 读取
6 . File.ReadAllBytes(string path);
打开一个指定文件,将文件的内容读入一个字符串中,然后关闭该文件。返回 byte[] 。
(注意字节数组我们并看不懂,需要把字节数组解码成字符串)。

7. Encoding.Default.GetString(byte[] bytes);
Encoding 表示字节编码;Default 表示编码格式。
// 打开一个文件,将文件的内容读入一个字符串,然后关闭该文件;返回一个 byte 数组byte[] buffer = File.ReadAllBytes(@"D:\paths\gaosan\gaosan.txt");// 将字节数组中的每一个元素都要按照我们指定的编码格式 解码成字符串// Encoding 表示字节编码 string  str = Encoding.Default.GetString(buffer); Console.WriteLine(str);

这里写图片描述


8 . File.ReadAllLines(string path);
打开一个文件,读取文件的所有行,然后关闭该文件。(2个重载)
// 打开一个文件,读取文件的所有行,然后关闭该文件string[] str1 = File.ReadAllLines(@"D:\paths\gaosan\gaosan.txt");foreach (string item in str1){    Console.WriteLine(item);}

这里写图片描述

注意这里读取出现了乱码,那是因为编码格式不一致。我们可以使用第二个重载,在参数二指定编码格式。在运行


8 .1. File.ReadAllLines(string path, Encoding encoding);
打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件
 // 打开一个文件,读取文件的所有行,然后关闭该文件 string[] str1 = File.ReadAllLines(@"D:\paths\gaosan\gaosan.txt",Encoding.Default); foreach (string item in str1) {     Console.WriteLine(item); }

这里写图片描述


9 . File.ReadAllText(string path, Encoding encoding);
打开一个文件,使用指定的编码读取文件的所有字符串,然后关闭该文件
 string str = File.ReadAllText(@"D:\paths\gaosan.txt", Encoding.Default); Console.WriteLine(str);

这里写图片描述


  • 写入
10 . File.WriteAllBytes(sring path,byte[] bytes);
创建一个新文件,在其中写入指定的字节数组,然后关闭文件,如果目标文件已存在,则覆盖该文件。

(注意字节数组我们并看不懂,所有写入的时候先创建字符串再把字符串转换成字节数组)

 // WriteAllBytes 创建一个新文件,在其中写入指定的字节数组, //  然后关闭文件,如果目标文件已存在,则覆盖该文件。  string str2 = "CSDN:http://blog.csdn.net/";  // 需要将字符串转换成字节数组  byte[] buffer1 = Encoding.Default.GetBytes(str2);  File.WriteAllBytes(@"D:\paths\gaosan\gaosan.txt", buffer1);

这里写图片描述


11 . File.WriteAllLines(string path, string[] contents);
创建一个新文件,如果已经存在则覆盖,在其中写入指定的字符串数组 。(一行一行的写入对应字符串数组元素)
// 创建一个新文件,如果已经存在则覆盖,在其中写入指定的字符串数组 (一行一行的写入对应字符串数组元素) File.WriteAllLines(@"D:\paths\gaosan\gaosan.txt", new string[] { "高山", "http://blog.csdn.net/joinl" });

这里写图片描述


在这里注意,打开文件出现了乱码,这是因为编码格式的原因,此方法有四个重载,我们可以在第三个参数指定个编码格式。在运行。

11 .1. File.WriteAllLines(string path, string[] contents, Encoding encoding);

 File.WriteAllLines(@"D:\paths\gaosan\gaosan.txt", new string[] { "高山", "http://blog.csdn.net/joinl" },Encoding.UTF8);

这里写图片描述


12 . File.WriteAllText(string path,string contents);
创建一个新文件,如果已经存在则覆盖,在其中写入指定的字符串。
// 创建一个新文件,如果已经存在则覆盖,在其中写入指定的字符串File.WriteAllText(@"D:\paths\gaosan\gaosan.txt", "CSDN:http://blog.csdn.net/", Encoding.UTF8);

这里写图片描述



知识点

  • File 读取文件是一次全部读完,所以 File 只适合读取小文件。而读取大文件就要用文件流。
  • ReadAllLines(); 和 ReadAllText(); 只能读取文本文件,当不是文本文件时只能使用 ReadAllBytes(); 读取。
  • 而 ReadAllLines(); 返回的是每行数组。(如果对每行数据进行操作是可以使用)
  • 如果只是读取展现文本文件的数据 就用 ReadAllText();

绝对路径和相对路径。
1 . 绝对路径: 通过给定的这个路径直接能在我的电脑中找到这个文件。
2 . 相对路径: 文件相对于应用程序的路径。
1 0