Keep on going never give up.

Let's Go

C# 学习笔记(34)Path类 和 File类 的基本操作

C#Lonely2019-05-14 21:04:3629次0条

Path类(路径类)

//Path类是专门操作路径的,使用前要引用命名空间

string str = @"C:\Users\Administrator\Desktop\Test.txt";

//获取文件名
Console.WriteLine(Path.GetFileName(str)); //Test.txt

//获取文件名,但不包含扩展名
Console.WriteLine(Path.GetFileNameWithoutExtension(str)); //Test

//获取文件夹所在路径的名称
Console.WriteLine(Path.GetDirectoryName(str)); //C:\Users\Administrator\Desktop

//获取文件全路径
Console.WriteLine(Path.GetFullPath(str)); //C:\Users\Administrator\Desktop\Test.txt

//组合路径
Console.WriteLine(Path.Combine(@"D:\影视资源\电影\", "西虹市首富.mp4")); //D:\影视资源\电影\西虹市首富.mp4

File类(文件类)

//File类缺点:只能读取小文件

string path = @"C: \Users\Administrator\Desktop\Test.txt";
//在指定路径中创建或覆盖文件
File.Create(path);
Console.WriteLine("创建成功");

//删除一个文件,彻底删除,回收站也没有
File.Delete(path);
Console.WriteLine("删除成功");

if (File.Exists(path)) //判断文件是否存在
{
    //将现有文件复制到新文件,不允许覆盖同名文件,否则报错
    string newFilePath = @"C: \Users\Administrator\Desktop\记事本.txt";
    if (!File.Exists(newFilePath))
    {
        File.Copy(path, newFilePath);
        Console.WriteLine("复制成功");
    }
    else
        Console.WriteLine("不允许覆盖同名文件");
}

//剪切文件
File.Move(path, @"C: \Test.txt");
Console.WriteLine("剪切成功");

//读数据

//方法一:以字节的形式进行读取,当我们读取的不是文本文件,而是多媒体文件,比如音乐文件,视频文件,图片文件等文件的时候,我们就需要用ReadAllBytes();方法去读取.
byte[] buffer = File.ReadAllBytes(path);
//将字符数组中的每一个元素都要按照我们指定的编码格式解码成字符串
//什么是编码:将字符串以什么样的形式保存为二进制。
//产生乱码的原因:就是保存这个文件所采用的编码,跟你打开这个文件所采用的编码格式不一样。
string s = Encoding.Default.GetString(buffer);
Console.WriteLine(s);

//方法二:以行的形式进行读取(只能读文本文件),返回数组,能精确操控到每行数据
string[] strArr = File.ReadAllLines(path, Encoding.Default);
foreach (string item in strArr)
{
    Console.WriteLine(item);
}

//方法三:(只能读文本文件),返回字符串
string str = File.ReadAllText(path, Encoding.Default);
Console.WriteLine(str);

//写数据
//如果没有这个文件的话,会给你创建一个,有的话,会给你覆盖掉其他内容。

//方法一:
string myStr = "Hello,world!";
//需要将字符串转换成字节数组
byte[] arr = Encoding.Default.GetBytes(myStr);
File.WriteAllBytes(path, arr);
Console.WriteLine("写入成功");

//方法二:
File.WriteAllLines(path, new string[] { "我是", "以数组", "的形式", "写入", "数据" }); //写一行换一行
Console.WriteLine("写入成功");

//方法三:
File.WriteAllText(path, "我在写入数据");
Console.WriteLine("写入成功");

//追加数据(不会覆盖原有的数据)

//方法一:
File.AppendAllText(path, "我没有把你覆盖掉");
Console.WriteLine("追加数据成功");

//方法二:
File.AppendAllLines(path, new string[] { "我是", "以数组", "的形式", "追加", "数据" });
Console.WriteLine("追加数据成功");

Console.ReadKey();
暗锚,解决锚点偏移

文章评论

    嘿,来试试登录吧!