这儿所说的并不是对文件进行读写,只是针对于获取文件和目录等。
主要分为对驱动器,目录和文件三大类。
对驱动器需要用到DriveInfo类来实现
对目录需要用到DirectoryInfo类来实现
对文件需要用到FileInfo类来实现。
其中 FileSystemInfo类既可以访问文件,也可以访问目录。
具体看下面的代码。
首先是访问驱动器:
//演示文件操作 /// <summary> /// 定义一个操作类 /// </summary> class FileClass { /// <summary> /// 打印驱动器信息 /// </summary> public void Drive() { try { //获取电脑上的所有驱动器 DriveInfo[] drive = DriveInfo.GetDrives(); Console.WriteLine("磁盘卷标\t驱动器名\t类型\t格式\t总共空间\t可用空间"); foreach (var VARIABLE in drive) { Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", VARIABLE.VolumeLabel, VARIABLE.Name, VARIABLE.DriveType, VARIABLE.DriveFormat, VARIABLE.TotalSize, VARIABLE.AvailableFreeSpace); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { Console.ReadKey(); } } class AAA { static void Main(string[] args) { FileClass Fc=new FileClass(); Fc.Drive(); // DirectoryInfo dtInfo=new DirectoryInfo("D://学习"); // Fc.DirectoryFun(dtInfo); // Fc.FileFun(dtInfo); // Fc.FileAndDirectoryFun(dtInfo); // Fc.recursionInfo(dtInfo); // Fc.RecurfileExe(dtInfo); // Console.ReadKey(); } }
这样就可以访问驱动器信息
下面来访问目录信息,首先我把我的目录文件截图给大家看下,总的文件是“学习” ,下面有5个目录和一个PDF文件,几个目录下还有文件和子目录。
下面来演示如何访问目录下的目录 代码如下。
/// <summary> /// 目录下的文件夹的遍历 只能识别目录(文件夹) 不能识别文件。 /// </summary> /// <param name="DtInfo"></param> public void DirectoryFun(DirectoryInfo DtInfo) { //获取子目录 DirectoryInfo[] Arry = DtInfo.GetDirectories(); Console.WriteLine(DtInfo.Name+"下的子目录有:"); foreach (var VARIABLE in Arry) { Console.WriteLine(VARIABLE.Name); } Console.ReadKey(); } class AAA { static void Main(string[] args) { FileClass Fc=new FileClass(); // Fc.Drive(); DirectoryInfo dtInfo=new DirectoryInfo("D://学习"); Fc.DirectoryFun(dtInfo); // Fc.FileFun(dtInfo); // Fc.FileAndDirectoryFun(dtInfo); // Fc.recursionInfo(dtInfo); // Fc.RecurfileExe(dtInfo); // Console.ReadKey(); } }
下面演示如何访问目录下的文件 代码如下
/// <summary> /// 目录下文件的遍历 /// </summary> /// <param name="dtInfo"></param> public void FileFun(DirectoryInfo dtInfo) { //获取文件 FileInfo []fileInfo = dtInfo.GetFiles(); Console.WriteLine(dtInfo.Name+"下的文件有:"); foreach (var VARIABLE in fileInfo) { Console.WriteLine(VARIABLE.Name); } Console.ReadKey(); } class AAA { static void Main(string[] args) { FileClass Fc=new FileClass(); // Fc.Drive(); DirectoryInfo dtInfo=new DirectoryInfo("D://学习"); // Fc.DirectoryFun(dtInfo); Fc.FileFun(dtInfo); // Fc.FileAndDirectoryFun(dtInfo); // Fc.recursionInfo(dtInfo); // Fc.RecurfileExe(dtInfo); // Console.ReadKey(); } }
下面演示访问目录下的目录和文件,主要依靠FileSystemInfo类 代码如下
/// <summary> /// 目录下的文件和子目录的遍历 /// </summary> /// <param name="dtInfo"></param> public void FileAndDirectoryFun(DirectoryInfo dtInfo) { //FileSystemInfo既可以访问文件 也可以访问目录 FileSystemInfo[] fileSystemInfo = dtInfo.GetFileSystemInfos(); Console.WriteLine(dtInfo.Name+"下的文件和目录有:"); foreach (var VARIABLE in fileSystemInfo) { Console.WriteLine(VARIABLE.Name); } Console.ReadLine(); } class AAA { static void Main(string[] args) { FileClass Fc=new FileClass(); // Fc.Drive(); DirectoryInfo dtInfo=new DirectoryInfo("D://学习"); // Fc.DirectoryFun(dtInfo); // Fc.FileFun(dtInfo); Fc.FileAndDirectoryFun(dtInfo); // Fc.recursionInfo(dtInfo); // Fc.RecurfileExe(dtInfo); // Console.ReadKey(); } }
下面演示递归访问目录下的所有目录和文件,包括子目录下的子目录和文件,代码如下。
/// <summary> /// 递归访问一个文件夹下所包括的所有文件和目录 及子目录中的文件 /// </summary> /// <param name="dtInfo"></param> public void recursionInfo(DirectoryInfo dtInfo) { //获取子目录和文件 FileSystemInfo[] fileSystemInfo = dtInfo.GetFileSystemInfos(); foreach (var VARIABLE in fileSystemInfo) { //如果是文件 则直接打印 if (VARIABLE is FileInfo ) { Console.WriteLine(VARIABLE.Name); } //如果是目录 则先打印目录名 然后访问该目录下的文件和目录 递归 else { //则先打印目录名 Console.WriteLine(VARIABLE.Name); //然后访问该目录下的文件和目录 递归 recursionInfo((DirectoryInfo)VARIABLE); } } } class AAA { static void Main(string[] args) { FileClass Fc=new FileClass(); // Fc.Drive(); DirectoryInfo dtInfo=new DirectoryInfo("D://学习"); // Fc.DirectoryFun(dtInfo); // Fc.FileFun(dtInfo); // Fc.FileAndDirectoryFun(dtInfo); Fc.recursionInfo(dtInfo); // Fc.RecurfileExe(dtInfo); // Console.ReadKey(); } }
下面演示如何访问指定目录下所有指定类型的文件,仍然是递归 这就需要用到Extension属性 这代表文件的扩展名。代码如下
/// <summary> /// 递归访问一个目录下的所有exe文件 需要用到Extension(文件扩展名) /// </summary> /// <param name="dtInfo"></param> public void RecurfileExe(DirectoryInfo dtInfo) { //获取所有目录和文件 FileSystemInfo[] fileSystemInfos= dtInfo.GetFileSystemInfos(); foreach (var VARIABLE in fileSystemInfos) { //如果是exe文件 则打印 if (VARIABLE.Extension == ".exe") { Console.WriteLine(VARIABLE.Name); } //如果是目录 则递归 else if (VARIABLE is DirectoryInfo) { RecurfileExe((DirectoryInfo)VARIABLE); } } } class AAA { static void Main(string[] args) { FileClass Fc=new FileClass(); // Fc.Drive(); DirectoryInfo dtInfo=new DirectoryInfo("D://学习"); // Fc.DirectoryFun(dtInfo); // Fc.FileFun(dtInfo); // Fc.FileAndDirectoryFun(dtInfo); // Fc.recursionInfo(dtInfo); Fc.RecurfileExe(dtInfo); Console.ReadKey(); } }
以上就是关于驱动器,目录和文件的访问,比较简单,希望对大家有帮助。
时间: 2024-10-05 23:50:08