Directory类 是一个静态类,常用的地方为创建目录和目录管理。
一下来看看它提供的操作。
1、CreateDirectory 根据指定路径创建目录。有重载,允许一次过创建多个目录。
2、Delete 删除指定的目录。 有重载,指示目录有子目录的情况下,是否删除子目录。 true则连同子目录一起删除。flase则不删除目录,并返回 一个异常。
3、Exists 确定给定路径是否引用磁盘上的现有目录。
4、GetAccessControl 已重载。 返回某个目录的 Windows 访问控制列表 (ACL)。
5、GetCreationTime 获取目录的创建日期和时间。
6、GetCreationTimeUtc 获取目录创建的日期和时间,其格式为协调通用时间 (UTC)。
7、GetCurrentDirectory 获取应用程序的当前工作目录。
8、GetDirectories 已重载。 获取指定目录中子目录的名称(字符串数组)。支持用正则表达式匹配符合名称的目录名。 注意,只返回目录名,不返回文件名
9、GetDirectoryRoot 返回指定路径的卷信息、根信息或两者同时返回。
10、GetFiles 已重载。 返回指定目录中的文件的名称(字符串数组)。注意只返回文件名,不返回目录
11、GetFileSystemEntries 已重载。 返回指定目录中所有文件和子目录的名称(字符串数组)。目录名与文件名一起返回。 支持正则表达式检索。
12、GetLastAccessTime 返回上次访问指定文件或目录的日期和时间。
13、GetLastAccessTimeUtc 返回上次访问指定文件或目录的日期和时间,其格式为协调通用时间 (UTC)。
14、GetLastWriteTime 返回上次写入指定文件或目录的日期和时间。
15、GetLastWriteTimeUtc 返回上次写入指定文件或目录的日期和时间,其格式为协调通用时间 (UTC)。
16、GetLogicalDrives 检索此计算机上格式为“<驱动器号>:\”的逻辑驱动器的名称。
17、GetParent 检索指定路径的父目录,包括绝对路径和相对路径。
18、Move 将文件或目录及其内容移到新位置。
19、SetAccessControl 将 DirectorySecurity 对象描述的访问控制列表 (ACL) 项应用于指定的目录。
20、SetCreationTime 为指定的文件或目录设置创建日期和时间。
21、SetCreationTimeUtc 设置指定文件或目录的创建日期和时间,其格式为协调通用时间 (UTC)。
22、SetCurrentDirectory 将应用程序的当前工作目录设置为指定的目录。
23、SetLastAccessTime 设置上次访问指定文件或目录的日期和时间。
24、SetLastAccessTimeUtc 设置上次访问指定文件或目录的日期和时间,其格式为协调通用时间 (UTC)。
25、SetLastWriteTime 设置上次写入目录的日期和时间。
26、SetLastWriteTimeUtc 设置上次写入某个目录的日期和时间,其格式为协调通用时间 (UTC)。
以下是实例;一个空行代表一个方法的测试。
static void Main( string [] args) { Directory.CreateDirectory( @"E:\123" ); //在E盘下创建一个名为123的文件夹 string [] strArr = Directory.GetDirectories( @"E:\123" ); foreach ( string str in strArr) { Console.WriteLine(str); //输出E:\123下所有的子目录名称 如:E:\123\1 } DateTime CreateDate = Directory.GetCreationTime( @"E:\123" ); Console.Write(CreateDate.ToString()); //输出2013/1/13 14:54:55 目录的创建时间 DateTime CreateDateUTC = Directory.GetCreationTimeUtc( @"E:\123" ); Console.Write(CreateDateUTC.ToString()); //输出2013/1/13 6:54:55 全球标准时间 string str = Directory.GetDirectoryRoot( @"E:\123" ); Console.Write(str); //输出 E:\ string [] strArr = Directory.GetFiles( @"E:\123" ); foreach ( string str in strArr) { Console.WriteLine(str); //输出E:\123\新建文本文件.txt } string [] strArr = Directory.GetFileSystemEntries( @"E:\123" ); foreach ( string str in strArr) { Console.WriteLine(str); //输出E:\1 E:\12 E\:123 E:\新建文本文件.txt 所有的子目录名与文件名 } DateTime lastAccessDate = Directory.GetLastAccessTime( @"E:\123" ); Console.Write(lastAccessDate.ToString()); //输出2013/1/13 14:58:32 上传访问时间 DateTime lastAccessDate = Directory.GetLastAccessTimeUtc( @"E:\123" ); Console.Write(lastAccessDate.ToString()); //输出2013/1/13 6:58:32 上传访问时间,全球标准时间 DateTime lastWriteTime = Directory.GetLastWriteTime( @"E:\123" ); Console.Write(lastWriteTime.ToString()); //输出2013/1/13 14:58:32 上传写入时间 DateTime lastWriteTime = Directory.GetLastWriteTimeUtc( @"E:\123" ); Console.Write(lastWriteTime.ToString()); //输出2013/1/13 14:58:32 上传写入时间 全球标准时间 string [] strAyy = Directory.GetLogicalDrives(); //检索计算机的所有盘符 foreach ( string str in strAyy) { Console.WriteLine(str); //输出C:\ D:\ E:\ F:\ G:\ } DirectoryInfo dif = Directory.GetParent( @"E:\123" ); Console.Write(dif.FullName); //输出E:\ Directory.Move( @"E:\123" , @"E:\new" ); //将E盘下的123目录移动到new目录,注意new目录不能存在,该方法会自动创建第二个参数中的目录,如果存在会报错 Directory.SetCreationTime( @"E:\123" , DateTime.Now.AddDays(7)); Console.Write(Directory.GetCreationTime( @"E:\123" )); //输出2013/1/20 15:58:59 //创建时间加了7天 Directory.SetCreationTimeUtc( @"E:\123" , DateTime.Now.AddDays(7)); Console.Write(Directory.GetCreationTimeUtc( @"E:\123" )); //输出2013/1/20 8:01:36 Directory.SetCurrentDirectory( @"E:\123" ); //将该目录设置为当前程序的工作目录 Console.Write(Directory.GetCurrentDirectory()); //输出E:\123 Directory.SetLastAccessTime( @"E:\123" , DateTime.Now.AddDays(-1)); Console.Write(Directory.GetLastAccessTime( @"E:\123" )); //输出2013/1/12 16:06:36 已经变为昨天了 Directory.SetLastAccessTimeUtc( @"E:\123" , DateTime.Now.AddDays(-1)); Console.Write(Directory.GetLastAccessTimeUtc( @"E:\123" )); //输出2013/1/12 8:07:21 已经变为昨天,全球标准时间 Directory.SetLastWriteTime( @"E:\123" , DateTime.Now.AddDays(-1)); Console.Write(Directory.GetLastWriteTime( @"E:\123" )); //输出2013/1/12 16:09:23 Directory.SetLastWriteTimeUtc( @"E:\123" , DateTime.Now.AddDays(-1)); Console.Write(Directory.GetLastWriteTimeUtc( @"E:\123" )); //输出2013/1/12 8:09:50 全球标准时间 if (Directory.Exists( @"E:\123" )) //如果E盘下存在123的文件夹 { Directory.Delete( @"E:\123" , true ); //删除E盘下的123文件夹 } Console.ReadKey(); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现