本文共 6660 字,大约阅读时间需要 22 分钟。
C#中的文件和目录处理是开发人员在编写应用程序时常用的功能。它允许程序能够读取、写入、删除文件,以及创建、删除目录等操作。这些功能主要由 System.IO 命名空间 提供,包含了丰富的类和方法,帮助开发人员高效地管理文件和目录。
DriveInfo 类用于获取计算机驱动器的信息。它包含多个方法和属性,能够返回驱动器的详细信息,如驱动器类型、格式、大小、可用空间等。
using System;using System.IO;class Program{ static void Main() { DriveInfo myDrive = new DriveInfo("C"); Console.WriteLine("驱动器名:{0}", myDrive.Name); Console.WriteLine("驱动器类型:{0}", myDrive.DriveType); Console.WriteLine("驱动器格式:{0}", myDrive.DriveFormat); Console.WriteLine("总大小:{0} MB", myDrive.TotalSize / 1024); Console.WriteLine("可用空间:{0} MB", myDrive.AvaliableFreeSpace / 1024); }}
Directory 类用于管理目录(文件夹)的操作。它提供了创建、删除、检查目录存在性、获取目录信息等功能。
using System;using System.IO;class Program{ static void Main() { string startingPath = @"C:\Users\Username\Documents"; Directory.CreateDirectory(startingPath); // 创建目录 if (!Directory.Exists(startingPath)) { Console.WriteLine("目录不存在"); return; } FileInfo[] files = Directory.GetFiles(startingPath); // 获取目录中的文件 foreach (FileInfo file in files) { Console.WriteLine("文件名:{0}", file.Name); Console.WriteLine("文件路径:{0}", file.FullName); Console.WriteLine("文件扩展名:{0}", file.Extension); Console.WriteLine("文件长度:{0} KB", file.Length / 1024); Console.WriteLine("文件创建时间:{0}", file.CreationTime); Console.WriteLine("文件最后访问时间:{0}", file.LastAccessTime); Console.WriteLine("文件最后写入时间:{0}", file.LastWriteTime); Console.WriteLine(new string('-', 50)); } }}
DirectoryInfo 类是一个更高级的类,用于获取和管理目录的详细信息。它提供了与 Directory 类类似的方法,但功能更为强大。
using System;using System.IO;class Program{ static void Main() { string startingPath = @"C:\Users\Username\Documents"; DirectoryInfo myDirInfo = new DirectoryInfo(startingPath); if (!myDirInfo.Exists) { Console.WriteLine("目录不存在"); return; } DirectoryInfo subDirInfo = myDirInfo.CreateSubdirectory("SubFolder"); Console.WriteLine("子目录路径:{0}", subDirInfo.FullName); FileInfo file = new FileInfo(@"C:\Users\Username\Documents\file.txt"); file.MoveTo(subDirInfo.FullName + "moved_file.txt"); Console.WriteLine("文件已移动到:{0}", file.FullName); myDirInfo.Delete(); Console.WriteLine("目录已删除"); }}
文件操作主要由 File 类和 FileInfo 类提供。File 类用于高级文件操作,而 FileInfo 类提供了文件的详细信息。
using System;using System.IO;class Program{ static void Main() { string path = @"C:\Users\Username\Documents\file.txt"; FileStream fs = File.Create(path); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("这是一个测试文件"); sw.Close(); fs.Close(); string content = File.ReadAllText(path); Console.WriteLine(content); File.Delete(path); Console.WriteLine("文件已删除"); }}
文件可以分为文本文件和二进制文件:
文件名通常可以反映文件类型。例如:
using System;using System.IO;class Program{ static void Main() { string startingPath = @"C:\Users\Username\Documents"; DirectoryInfo myDirInfo = new DirectoryInfo(startingPath); if (!myDirInfo.Exists) { Console.WriteLine("目录不存在"); return; } ArrayList dirs = new ArrayList(); clsDirectory myDirs = new clsDirectory(); int count = myDirs.ShowDirectory(myDirInfo, 0, dirs); foreach (DirectoryInfo dir in dirs) { Console.WriteLine("目录名:{0}", dir.Name); Console.WriteLine("目录路径:{0}", dir.FullName); Console.WriteLine("目录大小:{0} KB", dir.TotalSize / 1024); Console.WriteLine("目录创建时间:{0}", dir.CreationTime); Console.WriteLine("目录最后访问时间:{0}", dir.LastAccessTime); Console.WriteLine("目录最后写入时间:{0}", dir.LastWriteTime); Console.WriteLine(new string('-', 50)); } }}
using System;using System.IO;class Program{ static void Main() { string fileName = @"C:\Users\Username\Documents\ErrorLog.txt"; StreamWriter sw = new StreamWriter(fileName, true); try { DateTime currentDT = DateTime.Now; sw.WriteLine("{0},{1}:{2}", currentDT.ToShortDateString(), currentDT.ToShortTimeString(), "测试消息"); sw.WriteLine("-------------------"); sw.Close(); } catch (Exception ex) { Console.WriteLine("错误:{0}", ex.Message); } }}
using System;using System.IO;class Program{ static void Main() { string sourcePath = @"C:\Users\Username\Documents\file.txt"; string destinationPath = @"C:\Users\Username\Documents\new_file.txt"; if (File.Exists(sourcePath)) { File.Copy(sourcePath, destinationPath); Console.WriteLine("文件已复制"); } else { Console.WriteLine("源文件不存在"); } }}
通过上述内容,可以看出 C# 提供了丰富的文件和目录处理功能,适用于各种应用场景。无论是简单的文件读写,还是复杂的文件管理操作,都可以通过这些类和方法轻松实现。
转载地址:http://gusr.baihongyu.com/