C# Systemo.IO命名空间下的Path类和File类
1、Path类
方法 | 说明 |
---|---|
GetFileName | 获取文件名(默认包含扩展名) |
GetFileNameWithoutExtension | 获取文件名(不包含扩展名) |
GetExtension | 获取文件扩展名 |
GetDirectoryName | 获取文件所在的文件目录 |
GetFullPath | 获取文件所在的全路径 |
Combine | 连接字符串作为路径 |
string path = @"C:\Users\Administrator\Desktop\text.txt";
//获取文件名(默认包含扩展名)
Console.WriteLine(Path.GetFileName(path));//输出:text.txt
//获取文件名(不包含扩展名)
Console.WriteLine(Path.GetFileNameWithoutExtension(path));//输出:text
//获取文件扩展名
Console.WriteLine(Path.GetExtension(path));//输出:.txt
//获取文件所在的文件目录
Console.WriteLine(Path.GetDirectoryName(path));//输出:C:\Users\Administrator\Desktop
//获取文件所在的全路径
Console.WriteLine(Path.GetFullPath(path));//输出:C:\Users\Administrator\Desktop\text.txt
//连接字符串作为路径
Console.WriteLine(Path.Combine(@"C:\Users", "text.txt"));//输出:C:\Users\text.txt
Console.ReadKey();
注意:【@】符号的作用是屏蔽【\】符号所起的转义作用
2、File类
方法 | 说明 |
---|---|
Exists | 确定指定的文件是否存在 |
Create | 在指定路径中创建文件 |
WriteAllBytes | 以字节形式写入 |
ReadAllBytes | 以字节形式读取 |
Copy | 将现有文件复制到新文件 |
Move | 将指定文件移到新位置,并提供指定新文件名的选项 |
Delete | 删除指定的文件,如果指定文件不存在,则不引起异常 |
-
Exists
在路径 C:\Users\Administrator\Desktop 创建a.txt文件
string path1 = @"C:\Users\Administrator\Desktop\a.txt"; string path2 = @"C:\Users\Administrator\Desktop\b.txt"; string str1 = File.Exists(path1) ? "存在" : "不存在"; string str2 = File.Exists(path2) ? "存在" : "不存在"; Console.WriteLine("path1文件" + str1);//输出:存在 Console.WriteLine("path2文件" + str2);//输出:不存在 Console.ReadKey();
-
Create
string path = @"C:\Users\Administrator\Desktop\a.txt"; if (File.Exists(path)) { Console.Write("文件已经存在!!!\n1.覆盖文件\t2.取消创建\n请选择:"); string temp = Console.ReadLine(); if(temp == "1") { File.Create(path); Console.WriteLine("覆盖创建" + Path.GetFileName(path) + "成功."); } else { Console.WriteLine("用户取消创建."); } } else { File.Create(path); Console.WriteLine("创建" + Path.GetFileName(path) + "成功."); } Console.ReadKey();
注意:当文件存在时,创建会覆盖原本的文件。
-
WriteAllBytes
string str = "这是要输入的内容文本"; string path = @"C:\Users\Administrator\Desktop\a.txt"; byte[] buffer = Encoding.Default.GetBytes(str); File.WriteAllBytes(path, buffer); Console.WriteLine("写入成功.");//输出 Console.ReadKey();
打开a.txt文件:
-
ReadAllBytes
在路径 C:\Users\Administrator\Desktop 创建a.txt文件,并输入文本内容
string path = @"C:\Users\Administrator\Desktop\a.txt"; byte[] buffer = File.ReadAllBytes(path); string str = Encoding.Default.GetString(buffer); //Encoding.GetEncoding("utf-8").GetString(buffer); //默认为ANSI编码格式文件,可以对不同编码格式文件进行获取 Console.WriteLine("以下是a.txt文件文本内容:");//输出 Console.WriteLine(str);//输出 Console.ReadKey();
注意:文件的编码格式。默认编码格式为ANSI。
-
Copy
在路径 C:\Users\Administrator\Desktop 创建a.txt文件
string path = @"C:\Users\Administrator\Desktop\a.txt"; string copyToPath = @"C:\Users\Administrator\Desktop\b.txt"; if(File.Exists(path)) { if(File.Exists(copyToPath)) { Console.Write("复制目标文件已存在\n1.覆盖文件\t2.取消复制\n请选择:"); string temp = Console.ReadLine(); if(temp == "1") { File.Copy(path, copyToPath, true);//允许覆盖原文件 Console.WriteLine("复制成功"); } else { Console.WriteLine("用户取消复制文件"); } } else { File.Copy(path, copyToPath); Console.WriteLine("复制成功");//输出 } } else { Console.WriteLine(Path.GetFileName(path) + "文件不存在"); } Console.ReadKey();
注意:当新文件存在时,可以使用File.Copy()第三个参数,覆盖同名文件。
-
Move
在路径 C:\Users\Administrator\Desktop 创建a.txt文件
string path = @"C:\Users\Administrator\Desktop\a.txt"; string moveToPath = @"C:\Users\Administrator\Desktop\b.txt"; if(File.Exists(path)) { if(File.Exists(moveToPath)) { Console.WriteLine("文件已经存在,无法移动."); } else { File.Move(path, moveToPath); Console.WriteLine("移动成功.");//输出 } } else { Console.WriteLine(Path.GetFileName(path) + "文件不存在"); } Console.ReadKey();
注意:当移动位置存在同名同类型文件时,无法移动。
-
Delete
在路径 C:\Users\Administrator\Desktop 创建a.txt文件
string path = @"C:\Users\Administrator\Desktop\a.txt"; if(File.Exists(path)) { File.Delete(path); Console.WriteLine("删除成功.");//输出 } else { Console.WriteLine("未找到" + Path.GetFileName(path) + "文件,删除失败."); }