文件夹操作:DirectoryInfo类与Directory类

29 篇文章 10 订阅
27 篇文章 3 订阅

引子

项目中需要一个功能是获取文件夹下的所有文件。我的想法是:如果资源有添加或更新时,我就可以通过这个功能再进行后续的操作。代码如下:

var files = Directory.GetFiles(filepath);
for (int i = 0; i < files.Length; i++)
{
     
}

然后在这里记录一下,查找资料时找到的,关于文件夹操作的DirectoryInfo类与Directory类

Directory

  1. 创建一个文件夹;如果文件夹已经存在,就什么都不干:Directory.CreateDirectory

例:Directory.CreateDirectory(@"c:\a");这里是在C盘创建一个名为a的文件夹。

  1. 删除一个文件夹:Directory.Delete
    默认的第二个参数是false,只能删除空目录;第二个参数为true的时候就可以删除文件夹连同文件夹里的所有文件。

例:Directory.Delete(@"c:\a",true);这里是删除C盘名为a文件夹。

  1. 移动文件夹的位置:Directory.Move

例:Directory.Move(@"c:\a", @"d:\new");将C盘a文件夹移动到d盘变成名为new的文件夹。

  1. 判断文件夹是否存在,返回布尔类型:Directory.Exists

例:Directory.Exists(@"c:\a");判断C盘名为a的文件夹是否存在。

  1. 获取目录下的所有文件的路径,返回到字符串数组:Directory.GetFiles

例:第二个参数是筛选出只有jpg格式的文件,如果不填第二个参数,则返回全部文件。
string[] path=Directory.GetFiles(@"c:\a","*.jpg");遍历C盘a文件夹里面jpg格式的文件路径,并且保存在path数组里面。

  1. 获取目录下所有文件夹的路径,返回字符串数组:Directory.GetDirectories

例:string[] path = Directory.GetDirectories(@"c:\a");遍历C盘a文件夹下所有的文件夹路径,并保存到path数组里面。

DirectoryInfo

DirectoryInfo类是一个密封类,它可以用来创建、移动、枚举目录和子目录。

DirectoryInfo类的属性说明

DirectoryInfo类包括4个属性,可以用来获取目录的名称、父目录等。

  • Exists:判断指定目录是否存在。如果存在,则返回true,否则返回false
  • Name:获取目录的名称。
  • Parent“获取指定子目录的父目录。
  • Root:获取路径的根部分。

DirectoryInfo类还包括了以下9个属性,它们是从FileSystemInfo类继承而来。

  • Extension属性:获取文件扩展名部分。
  • FullName属性:获取完整目录。
  • Attributes属性:获取或设置当前目录的FileAttributes
  • CreationTime属性:获取或设置当前目录的创建时间。
  • CreationTimeUtc属性:获取或设置当前目录的创建时间,其格式为协调通用时间。
  • LastAccessTime属性:获取或设置上次访问当前目录的时间。
  • LastAccessTimeUtc属性:获取或设置上次访问当前目录的时间,其格式为协调通用时间。
  • LastWriteTime属性:获取或设置上次写入当前目录的时间。
  • LastWriteTimeUtc属性:获取或设置上次写入当前目录的时间,其格式为协调通用时间。

DirectoryInfo类的实例方法说明

  • Create():创建目录。
  • GetDirectories():获取当前目录的子目录。
  • CreateSubdirectory():在指定路径中创建一个或多个子目录。
  • GetFiles():获取当前目录的文件列表。
  • Delete():删除指定的目录及其内容。
  • GetFileSystemInfos():获取当前目录的子目录和文件列表。
  • MoveTo():将指定目录及其内容移到新位置。

其中,Create()Delete()MoveTo()方法用来操作目录,它们依次可以用来创建、删除和移动目录。MoveTo()方法用来移动目录,它首先创建一个新目录(包括该目录的内容),然后再将被移动的目录删除。

Directory类和DirectoryInfo类的区别

  • Directory公用的静态类,是公开建立、移动和全面列举目录和子目录的静态方法
  • DirectoryInfo实例类,是公开建立、移动和全面列举目录内和子目录的容执行个体 (Instance) 方法。

参考链接

  1. https://zhidao.baidu.com/question/522944677.html
  2. https://www.cnblogs.com/vaevvaev/p/7464070.html
  3. https://blog.csdn.net/u012581234/article/details/54839108
  4. https://blog.csdn.net/qq_28745613/article/details/97763828
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天富儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值