驱动器-目录-文件
Posted 81192
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了驱动器-目录-文件相关的知识,希望对你有一定的参考价值。
c#提供了操作驱动器,目录以及文件的相关类,可以很方便的进行目录文件的操作。
Driveinfo获取驱动器相关信息
以下为获取驱动器信息方法:
// GetDrives() method retrieves the drive names of all logical drives on a computer. DriveInfo[] drives = DriveInfo.GetDrives(); Console.WriteLine(drives.Length); foreach (DriveInfo drive in drives) { if (drive.IsReady) { Console.WriteLine("Drive Name : " + drive.Name); Console.WriteLine("Drive Volume name : " + drive.VolumeLabel); Console.WriteLine("Drive Format : " + drive.DriveFormat); Console.WriteLine("Drive Type : " + drive.DriveType); Console.WriteLine("Drive root directory name : " + drive.RootDirectory); Console.WriteLine("Drive free space: " + drive.AvailableFreeSpace); Console.WriteLine("Total Free space on the drive : " + drive.TotalFreeSpace); Console.WriteLine("Total disk size : " + drive.TotalSize); Console.WriteLine(); } } Console.ReadLine();
获取目录(文件夹)有Directory和DirectoryInfo类,前者为静态方法,后者需要进行构造,构造参数为目录。可以对目录进行移动删除以及获取生成时间等的相关操作。以下代码为获取目录信息以及进行移动。
string path = @"E:\\temp\\test"; string destination = @"E:\\test2"; DirectoryInfo di = new DirectoryInfo(path);//构造 if (!di.Exists) { di.Create(); } else { Console.WriteLine("File already exists!"); } string name = di.CreationTime.ToString();//获取文件夹建立时间; Console.WriteLine(name); if (di.Exists) { di.MoveTo(destination); } //di.MoveTo("D:\\\\ctest\\\\test");//文件夹 移动到新位置; //di.Delete(); Console.ReadKey();
对文件操作则有File和FileInfo类,同样前者为静态类,后者需要构造,C#提供了文件复制的方法,但是目录只有移动方法,以下代码为移动目录的方法,思路很简单,采用递归方法,获取要移动目录下的目录和文件,文件可以直接移动,目录则在新目录下即可。
static void CopyDirectory(string srcDir, string desDir) { //检测源目录或者目标目录是否存在 if (!Directory.Exists(srcDir)) { Console.WriteLine("源目录不存在!"); return; } if (!Directory.Exists(desDir)) { Console.WriteLine("目标目录不存在!"); Directory.CreateDirectory(desDir);//目标目录不存在则建立目标文件 } //在目标目录下创建源目录 string folderName;//获取目录:test1 if (srcDir.LastIndexOf("\\\\") == srcDir.Length - 1)//如果源目录字符串为"E:\\\\test1\\\\"形式,则修改为"E:\\\\test1" { srcDir = srcDir.Remove(srcDir.Length - 1); } folderName = srcDir.Substring(srcDir.LastIndexOf("\\\\") + 1);//获取目录:test1 string desFolderDir = desDir + "\\\\" + folderName;//目标目录 if (desDir.LastIndexOf("\\\\") == desDir.Length - 1)//如果源目录字符串为"E:\\\\test2\\\\"形式 { desFolderDir = desDir + folderName; } string[] file = Directory.GetFileSystemEntries(srcDir);//获取目标目录下的文件 foreach (string temp in file) { if (Directory.Exists(temp))//判断目录是否存在,否则则为文件 { string currentDesDir = desFolderDir + "\\\\" + temp.Substring(temp.LastIndexOf("\\\\") + 1);//获取子目录 if (!Directory.Exists(currentDesDir))//把test1里的子目录放入test2里test1(放置第一个子目录时连带test1一起建立)里 { Directory.CreateDirectory(currentDesDir); } CopyDirectory(temp, desFolderDir);//把子目录的东西复制到test2相应目录里面。desFolderDir现在不包含temp,但是当递归调用后真正执行时已经包含temp } else //把文件复制到相应位置 { string filePathName = desFolderDir + "\\\\" + temp.Substring(temp.LastIndexOf("\\\\") + 1); if (!Directory.Exists(desFolderDir)) { Directory.CreateDirectory(desFolderDir); } File.Copy(temp, filePathName, true); } } }
此外,C#还提供了Path类对整个文件路径进行操作,可以获取路径目录,文件,扩展名等方法。
以上是关于驱动器-目录-文件的主要内容,如果未能解决你的问题,请参考以下文章
应用程序启动器 “sublime_text.desktop“ 还没有被标记为 信任。如果您不知道这个文件的来源,那么启动它可能会不安全。解决sublime在ubuntu中不支持中文输入问题。(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段
关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段