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


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
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值