首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目录vs DirectoryInfo

目录vs DirectoryInfo
EN

Stack Overflow用户
提问于 2010-06-30 13:00:46
回答 5查看 52.4K关注 0票数 46

它们是等价的还是相互替代的?它们中有没有被弃用的?如果有,是哪一个?建议在ASP.NET web应用程序中使用哪种方法?我的目标是递归地提取特定目录中的所有文件。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-30 13:05:58

Directory是一个静态类,它提供了处理目录的静态方法。DirectoryInfo是一个类的实例,它提供有关特定目录的信息。例如,如果您想要有关C:\Temp的信息:

代码语言:javascript
复制
var dirInfo = new DirectoryInfo("C:\\Temp");
if (dirInfo.Exists) {
    FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
    ...
}

如果您只想要字符串形式的名称,那么使用目录的静态方法来避免创建DirectoryInfo实例可能会更快、更容易。

代码语言:javascript
复制
if (Directory.Exists("C:\\Temp")) {
    string[] files = Directory.GetFiles("C:\\Temp", "*.*", SearchOption.AllDirectories);
    ...
}

简而言之,你使用哪一个并不重要,只要它能做你想要的。这两种方法都不推荐。

票数 54
EN

Stack Overflow用户

发布于 2010-06-30 13:09:56

Directory类是一个静态类,可以用来创建、移动、枚举目录和子目录。DirectoryInfo类的用途也与Directory类相同,后者的成员是实例成员,而不是Directory类。两者之间的主要区别在于我们何时可以使用这些类。当我们想要一次进行简单的文件夹操作时,可以使用Directory类。例如,您需要删除文件夹并退出。但是,DirectoryInfo类与一个文件夹相关联,它为您提供了可以在该文件夹上执行的所有操作。DirectoryInfo类在实例化时接受路径作为参数,并为您提供有关文件夹的所有内容。你可以创建子目录,移动,枚举等。CODEDIGEST

还有一个重要的注意事项,如果您必须在目录上执行多个操作,则DirectoryInfo将具有性能优势,因为它不需要对每个操作都进行安全特权检查。

票数 9
EN

Stack Overflow用户

发布于 2010-07-02 13:12:44

目录

  1. 目录是一个静态类。
  2. 当我们想要在文件夹中执行一个操作时,应该使用它。
  3. 因为不需要创建目录类的对象,所以使用它没有任何开销。

目录信息类

  1. DirectoryInfo不是一个静态类。
  2. 如果用户需要在一个目录上执行大量操作,如创建、删除、文件列表等,则应使用DirectoryInfo类。如果您要在文件夹上执行许多操作,则会创建一个单独的对象,用于执行所有与目录相关的operations.
  3. It's。因为,一旦创建了对象,它就拥有有关该文件夹的所有必要信息,如创建时间、上次访问时间和属性。

类的所有成员都是实例成员。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3146586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档