佳佳的博客
Menu
首页
《.NET Core 实战》 [No.241~252] 目录与文件
Posted by
佳佳
on 2020-03-23
IT
C#
.NET Core
《.NET Core 实战》
读书笔记
<!-- # 《.NET Core 实战》 [No.241~252] 目录与文件 --> <!-- dotnet-core-directory-and-file --> 操作目录与文件主要使用如下几个类: - `Directory`:提供了一系列操作目录的静态方法。 - `File`:提供了一系列操作文件的静态方法。 - `DirectoryInfo`:提供了一系列操作目录的实例方法。 - `FileInfo`:提供了一系列操作文件的实例方法。 - `DriveInfo`:磁盘信息 如下示例代码基本上包含了常用的目录和文件操作,以供参考。 ```csharp var dirName = "test_dir"; var fileName_SampleData = $"{dirName}/sample.data"; var fileName_TestData = $"{dirName}/test_data"; // 判断目录是否存在 if (Directory.Exists(dirName)) { // 判断文件是否存在 if (File.Exists(fileName_SampleData)) { // 删除文件 File.Delete(fileName_SampleData); } // 创建 FileInfo 实例 var fiTestData = new FileInfo(fileName_TestData); // 使用 FileInfo 判断文件是否存在 if (fiTestData.Exists) { // 使用 FileInfo 删除文件 fiTestData.Delete(); } // 删除目录 Directory.Delete(dirName); } // 创建目录 Directory.CreateDirectory(dirName); // 创建并写入文件 using (var stream = File.Create(fileName_SampleData)) { byte[] buffer = { 2, 3, 5, 7, 11 }; // 写入文件 stream.Write(buffer, 0, buffer.Length); stream.Close(); } // 修改文件的创建时间 File.SetCreationTime(fileName_SampleData, new DateTime(1990, 1, 18, 12, 0, 0)); // 使用 FileInfo 类创建文件 var file = new FileInfo(fileName_TestData); using (var s = file.Create()) { // 写入文件 s.Write(new byte[] { 90, 1, 18 }); } // 覆写文件内容 File.WriteAllText(fileName_SampleData, "岂曰无衣?与子同袍。\r\n"); // 向文件追加文本 File.AppendAllText(fileName_SampleData, "山川异域,\r\n"); File.AppendAllText(fileName_SampleData, "风月同天。\r\n\r\n"); // 以行的形式写入文本 File.AppendAllLines(fileName_SampleData, new string[] { "绝对有佳人,幽居在空谷。", "自云良家子,零落依草木。", "", }); // 读取文件中所有行 var lines = File.ReadAllLines(fileName_SampleData); foreach (var line in lines) { Console.WriteLine(line); } // 获取文件信息 DirectoryInfo dir = new DirectoryInfo(dirName); var q = from f in dir.EnumerateFiles() orderby f.Length select (FileName: f.Name, FileSize: f.Length); // 重命名目录 var oldName = "test_1"; var newName = "test_2"; if (Directory.Exists(newName)) { Directory.Delete(newName); } Directory.CreateDirectory(oldName); Directory.Move(oldName, newName); // 枚举磁盘驱动器 DriveInfo[] driveInfos = DriveInfo.GetDrives(); var qd = from d in driveInfos where d.IsReady select d; foreach (var di in qd) { Console.WriteLine($"驱动器名:{di.Name}"); Console.WriteLine($"卷标:{di.VolumeLabel}"); Console.WriteLine($"总容量:{di.TotalSize}"); Console.WriteLine($"当前可用空间:{di.TotalFreeSpace}"); Console.WriteLine($"驱动器类型:{di.DriveType}"); Console.WriteLine($"文件格式:{di.DriveFormat}"); Console.WriteLine($"根目录:{di.RootDirectory.Name}"); Console.WriteLine(); } ``` 输出结果如下:  --- > 购买本书 => [《.NET Core实战:手把手教你掌握380个精彩案例》][10] -- *周家安* 著 --- [10]:https://union-click.jd.com/jdc?e=&p=AyIGZRhaEwAQBFUZXBIyEgRSEl0QCxc3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFQ5THlIQMm1AEkRdb11GZyNTK0BBZwYIbylWcHILWStaJQITBlYbXB0LFQJlK1sSMkBpja3tzaejG4Gx1MCKhTdUK1sRCxQBVxtTEQIQBlwrXBULIloNXwZBXUReEStrJQEiN2UbaxYyUGlUG1kUBhcGUBILQgUXDlMeUkBVRlUBS10XBkIABhkJRzIQBlQfUg%3D%3D (《.NET Core实战:手把手教你掌握380个精彩案例》)
版权声明:原创文章,未经允许不得转载。
https://www.liujiajia.me/2020/3/23/dotnet-core-directory-and-file
“Buy me a nongfu spring”
« 《.NET Core 实战》 [No.253~259] 流
《.NET Core 实战》 [No.236~240] 动态类型 »
昵称
*
电子邮箱
*
回复内容
*
(回复审核后才会显示)
提交
目录
AUTHOR
刘佳佳
江苏 - 苏州
软件工程师
梦嘉集团