获取磁盘信息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);//获取文件创建时间
文件操作: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的代码 }
标签:文件,Console,IO,StreamWriter,c#,filePath,sw,WriteLine From: https://www.cnblogs.com/longxinyv/p/16846479.html