基本概念
System.IO 命名空间有各种不同的类,用于执行各种文件操作,如创建和删除文件、读取或写入文件,关闭文件等。以下是一些常用的类及其用途:
File类
提供静态方法来读写文件,如复制、删除、移动文件等。
File.Exists():判断文件是否存在
if (File.Exists("D:\\test.txt"))
Console.WriteLine("文件存在");
File.Create():创建文件
FileStream fs = File.Create("D:\\file.txt");
File.WriteAllBytes()、File.WriteAllLines()、File.WriteAllText():写入文件
//将指定字节数组 写入到指定路径的文件中
byte[] bytes = BitConverter.GetBytes(999);
File.WriteAllBytes("D:\\file.txt", bytes);
//将指定的string数组内容 一行行写入到指定路径中
string[] strs = new string[] { "123", "456", "abc"};
File.WriteAllLines("D:\\file.txt", strs);
//将指定字符串写入指定路径
File.WriteAllText("D:\\file.txt", "Hello World!");
File.ReadAllBytes()、File.ReadAllLines()、File.ReadAllText():读取文件
//读取字节数据
byte[] bytes = File.ReadAllBytes("D:\\file.txt");
Console.WriteLine(BitConverter.ToInt32(bytes,0));
//读取所有行信息
string[] strs = File.ReadAllLines("D:\\file.txt");
for (int i = 0; i < strs.Length; i++)
Console.WriteLine(strs[i]);
//读取所有文本信息
Console.WriteLine(File.ReadAllText("D:\\file.txt"));
File.Delete():删除文件
//如果删除打开着的文件 会报错
File.Delete("D:\\file.txt");
File.Copy():复制文件
//参数一:现有文件
//参数二:目标文件
File.copy("D:\\currenfile.txt","D:\\targetfile.txt");
File.Replace():文件替换
//7.文件替换
//参数一:用来替换的路径
//参数二:被替换的路径
//参数三:备份路径
File.Replace("D:\\originalfile.txt","D:\destination.txt","D:\backup.txt");
File.Open():以流的形式打开文件并写入或读取
Filestream fs = File.Open("D:\\file.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
FileStream类
FileSteam是文件流类,主要作用是读写文件的细节,File只能整体读写文件,而FileStream可以以字节的的形式处理文件
创建或打开指定文件
//参数一:路径
//参数二:打开模式FileMode
//CreateNew:创建新文件 如果文件存在则报错
//Create:创建文件,如果文件存在则覆盖
//Open:打开文件,如果文件不存在则报错
//OpenOrCreate:打开或者创建文件根据实际情况操作
//Append:若存在文件,则打开并查找文件尾,或者创建一个新文件
//Truncate:打开并清空文件内容
//参数三:访问权限FileAccess
//Read:允许别的程序读取当前文件
//Write:允许别的程序写入该文件
//ReadWrite:允许别的程序读写该文件
//参数四:共享权限FileShare
//None:拒绝共享当前文件。任何打开文件的请求(通过此处理器进程)都将失败,直到文件关闭。
//Read:允许别的程序读取当前文件
//Write:允许别的程序写入该文件
//ReadWrite:允许别的程序读写该文件
//Delete:允许后续删除文件。
//Inheritable:使文件句柄可由子进程继承。Win32不直接支持此功能。
FileStream fs = new FileStream("D:\\file.txt", FileMode.Create, FileAccess.ReadWrite);//方法一
Filestream fs = File.Open("D:\\file.txt", FileMode.Create, FileAccess.ReadWrite);//方法二
FileStrem fs = File.Create("D:\\file.txt");//方法三
重要属性和方法
FileStream fs1 = File.Create("D:\\file.txt");
byte[] bytes1 = BitConverter.GetBytes(100);
//写入
//参数一:写入的字节数组
//参数二:数组中开始的索引
//参数三:写入多少字节
fs1.Write(bytes1, 0, bytes1.Length);
fs1.Close();//关闭流,当文件读写完毕后一定执行
fs1.Dispose();//缓存资源销毁回收
FileStream fs2 = File.Open("D:\\file.txt",FileMode.Open);
byte[] bytes2 = new byte[4];
//读取
//参数一:用于存储读取字节数组的容器
//参数二:容器开始的位置
//参数三: 读取多少个字节装入容器
//返回值:当前索引流前进了几个位置
int index = fs2.Read(bytes2, 0, bytes2.Length);
Console.WriteLine(BitConverter.ToInt32(bytes2, 0));//输出100
Directory类
用于创建、删除目录,以及列出目录内容等
Directory.Exists():判断文件夹是否存在
if( Directory.Exists("D:\\directory"))
Console.WriteLine("文件夹存在");
Directory.CreateDirectory():创建文件夹
Directory.CreateDirectory("D:\\directory");
Directory.Delete():删除文件夹
//参数一:路径
//参数二:是否删除非空目录,如果为true,删除整个目录,如果是false,仅当该目录为空时才可以删除
Directory.Delete("D:\\directory", true);
Directory.GetDirectories():得到指定路径下所有文件夹名
string[] str = Directory.GetDirectories("D:\\directory");
for (int i = 0; i < str.Length; i++)
{
Console.WriteLine(str[i]);
}
Directory.GetFiles():得到指定路径下所有文件名
string[] str = Directory.GetFiles("D:\\directory");
DirectoryInfo和FileInfo类
DirectoryInfo目录信息类
我们可以通过它获取文件夹的更多信息,主要作用于以下两个地方
创建文件夹方法的返回值
DirectoryInfo dInfo = Directory.CreateDirectory("D:\\directory");
Console.WriteLine(dInfo.FullName);//完整目录
Console.WriteLine(dInfo.Name);//文件夹名
查找上级文件夹信息
dInfo = Directory.GetParent("D:\\directory");
//重要方法
//得到所有子文件夹的目录信息
DirectoryInfo[] dInfos = dInfo.GetDirectories();
FileInfo目录信息类
//可以通过DirectoryInfo得到该文件下的所有文件信息
FileInfo[] fInfos = dInfo.GetFiles();
for (int i = 0; i < fInfos.Length; i++)
{
Console.WriteLine(fInfos[i].Name);//文件名
Console.WriteLine(fInfos[i].FullName);//路径名
Console.WriteLine(fInfos[i].Length);//字节长度
Console.WriteLine(fInfos[i].Extension);//后缀名
}
标签:文件,Console,File,IO,file,Directory,操作,txt
From: https://www.cnblogs.com/comradexiao/p/18473907