• 欢迎光临~

c#中的IO流(文件操作)

开发技术 开发技术 2022-11-01 次浏览
获取磁盘信息DriveInfo
foreach (var div in DriveInfo.GetDrives())
{
    Console.WriteLine(div + "容量:"+ div.TotalSize);//获取到盘符
}

获取文件信息Environment

Console.WriteLine(Environment.CurrentDirectory);//获取当前目录

路径管理Path

string path = Path.Combine(Environment.CurrentDirectory, "net");//路径拼接,往后加一级文件夹,可以两个可以多个方法重载的。
Console.WriteLine(path);

目录管理:Dictionary文件夹创建删除移动等操作,DirectoryInfo获取文件夹信息

DirectoryInfo dinfo = Directory.CreateDirectory(path);//创建文件夹
Console.WriteLine(dinfo.Name);//获取文件夹名称

文件管理:File文件删除移动创建等操作,FileInfo获取文件信息

string filePath = path + "\books.txt";//记录文件路径
FileStream f = File.Create(filePath);//创建文件(也会覆盖原文件),把路径给方法Create创建
f.Close();//因为Create是FileStream文件操作流对象,在操作流开启那么需要关闭后面的才能继续使用。否则进程无法释放。
FileInfo fi = new FileInfo(filePath);
Console.WriteLine(fi.CreationTime);//获取文件创建时间
FileStream fs = new FileStream(url, FileMode.Append); //文件存在就打开,不存在就创建,这种创建需要io流引入库,了解就好

文件操作:Stream派生出FileStream他在派生出StreamReader读取文件流和StreamWriter写入文件流

StreamWriter sw = new StreamWriter(filePath,true);//写入,构造方法重载,第二个参数是文件追加写入,不覆盖
try
{
    sw.WriteLine("写入一句话。");
}
catch (IOException ex)//IO流异常
{
    throw ex;//返回异常
}
finally 
{
    sw.Close();//关闭写入流
}
StreamReader sr = new StreamReader(filePath);//读取
string str;
while((str = sr.ReadLine()) !=null) Console.WriteLine(str);

StreamWriter流是非托管类型,net管不了,操作系统管理,需要手动关闭释放,否则一直占用进程资源。
using关键字大括号运行技术后可以自动释放。是官方给的,结合try--catch手动关闭的方式写的关键字,以后就不需要每次去手动关闭了。

using (StreamWriter sw = new StreamWriter(filePath, true))//using关键字:作用于对象在大概运行结束后自动close,自动释放资源。
{
    sw.WriteLine("写入一句话。");//节省了try-catch的代码
}

 

程序员灯塔
转载请注明原文链接:c#中的IO流(文件操作)
喜欢 (0)