导出 (0) 打印
全部展开
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。
译文
原文

Directory 类

公开用于创建、移动和枚举通过目录和子目录的静态方法。 此类不能被继承。

System.Object
  System.IO.Directory

命名空间:  System.IO
程序集:  mscorlib(在 mscorlib.dll 中)

[ComVisibleAttribute(true)]
public static class Directory

Directory 类型公开以下成员。

  名称说明
公共方法静态成员由 XNA Framework 提供支持CreateDirectory(String)在指定路径创建所有目录和子目录。
公共方法静态成员CreateDirectory(String, DirectorySecurity)创建指定路径中的所有目录,并应用指定的 Windows 安全性。
公共方法静态成员由 XNA Framework 提供支持Delete(String)从指定路径删除空目录。
公共方法静态成员由 XNA Framework 提供支持Delete(String, Boolean)删除指定的目录并(如果指示)删除该目录中的所有子目录和文件。
公共方法静态成员EnumerateDirectories(String)返回指定路径中的目录名称的可枚举集合。
公共方法静态成员EnumerateDirectories(String, String)返回指定路径中与搜索模式匹配的目录名称的可枚举集合。
公共方法静态成员EnumerateDirectories(String, String, SearchOption)返回指定路径中与搜索模式匹配的目录名称的可枚举集合,还可以搜索子目录。
公共方法静态成员EnumerateFiles(String)返回指定路径中的文件名的可枚举集合。
公共方法静态成员EnumerateFiles(String, String)返回指定路径中与搜索模式匹配的文件名称的可枚举集合。
公共方法静态成员EnumerateFiles(String, String, SearchOption)返回指定路径中与搜索模式匹配的文件名称的可枚举集合,还可以搜索子目录。
公共方法静态成员EnumerateFileSystemEntries(String)返回指定路径中的文件系统项的可枚举集合。
公共方法静态成员EnumerateFileSystemEntries(String, String)返回指定路径中与搜索模式匹配的文件系统项的可枚举集合。
公共方法静态成员EnumerateFileSystemEntries(String, String, SearchOption)返回指定路径中与搜索模式匹配的文件名称和目录名称的可枚举集合,还可以搜索子目录。
公共方法静态成员由 XNA Framework 提供支持Exists确定给定路径是否引用磁盘上的现有目录。
公共方法静态成员GetAccessControl(String)获取一个 DirectorySecurity 对象,该对象封装指定目录的访问控制列表 (ACL) 项。
公共方法静态成员GetAccessControl(String, AccessControlSections)获取一个 DirectorySecurity 对象,它封装指定目录的指定类型的访问控制列表 (ACL) 项。
公共方法静态成员由 XNA Framework 提供支持GetCreationTime获取目录的创建日期和时间。
公共方法静态成员GetCreationTimeUtc获取目录创建的日期和时间,其格式为协调世界时 (UTC)。
公共方法静态成员由 XNA Framework 提供支持GetCurrentDirectory获取应用程序的当前工作目录。
公共方法静态成员由 XNA Framework 提供支持GetDirectories(String)获取指定目录中的子目录的名称(包括其路径)。
公共方法静态成员由 XNA Framework 提供支持GetDirectories(String, String)在当前目录获取与指定搜索模式匹配的目录的数组(包括它们的路径)。
公共方法静态成员GetDirectories(String, String, SearchOption)获取与在当前目录中的指定搜索模式相匹配的目录(包括其路径)的名称,并且可以搜索子目录。
公共方法静态成员由 XNA Framework 提供支持GetDirectoryRoot返回指定路径的卷信息、根信息或两者同时返回。
公共方法静态成员由 XNA Framework 提供支持GetFiles(String)返回指定目录中文件的名称(包括其路径)。
公共方法静态成员由 XNA Framework 提供支持GetFiles(String, String)返回指定目录中与指定的搜索模式匹配的文件的名称(包含它们的路径)。
公共方法静态成员GetFiles(String, String, SearchOption)返回指定目录中与指定的搜索模式匹配的文件的名称(包含它们的路径),并使用一个值以确定是否搜索子目录。
公共方法静态成员由 XNA Framework 提供支持GetFileSystemEntries(String)返回指定目录中所有文件和子目录的名称。
公共方法静态成员由 XNA Framework 提供支持GetFileSystemEntries(String, String)返回与指定搜索条件匹配的文件系统项的数组。
公共方法静态成员GetFileSystemEntries(String, String, SearchOption)获取指定路径中与搜索模式匹配的所有文件名称和目录名称的数组,还可以搜索子目录。
公共方法静态成员由 XNA Framework 提供支持GetLastAccessTime返回上次访问指定文件或目录的日期和时间。
公共方法静态成员GetLastAccessTimeUtc返回上次访问指定文件或目录的日期和时间,其格式为协调世界时 (UTC)。
公共方法静态成员由 XNA Framework 提供支持GetLastWriteTime返回上次写入指定文件或目录的日期和时间。
公共方法静态成员GetLastWriteTimeUtc返回上次写入指定文件或目录的日期和时间,其格式为协调世界时 (UTC)。
公共方法静态成员GetLogicalDrives检索此计算机上格式为“<盘符>:\”的逻辑驱动器的名称。
公共方法静态成员GetParent检索指定路径的父目录,包括绝对路径和相对路径。
公共方法静态成员由 XNA Framework 提供支持Move将文件或目录及其内容移到新位置。
公共方法静态成员SetAccessControlDirectorySecurity 对象描述的访问控制列表 (ACL) 项应用于指定的目录。
公共方法静态成员SetCreationTime为指定的文件或目录设置创建日期和时间。
公共方法静态成员SetCreationTimeUtc设置指定文件或目录的创建日期和时间,其格式为协调世界时 (UTC)。
公共方法静态成员由 XNA Framework 提供支持SetCurrentDirectory将应用程序的当前工作目录设置为指定的目录。
公共方法静态成员SetLastAccessTime设置上次访问指定文件或目录的日期和时间。
公共方法静态成员SetLastAccessTimeUtc设置上次访问指定文件或目录的日期和时间,其格式为协调世界时 (UTC)。
公共方法静态成员SetLastWriteTime设置上次写入目录的日期和时间。
公共方法静态成员SetLastWriteTimeUtc设置上次写入某个目录的日期和时间,其格式为协调世界时 (UTC)。
页首

Directory 类用于典型操作,如复制、移动、重命名、创建和删除目录。 也可将 Directory 类用于获取和设置与目录的创建、访问及写入操作相关的 DateTime 信息。

由于所有的 Directory 方法都是静态的,所以如果只想执行一个操作,那么使用 Directory 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高。 大多数 Directory 方法要求当前操作的目录的路径。

Directory 类的静态方法对所有方法都执行安全检查。 如果打算多次重用某个对象,可考虑改用 DirectoryInfo 的相应实例方法,因为并不总是需要安全检查。

注意注意

在接受路径作为输入字符串的成员中,路径必须是格式良好的,否则将会引发异常。然而,如果路径是完全限定的,但是以空格开头,则空格不会被省略,并且不会引发异常。 同样,路径或路径的组合不能被完全限定两次。 例如,“c:\temp c:\windows”在大多数情况下也将引发异常。 在使用接受路径字符串的方法时,请确保路径是格式良好的。

在接受路径的成员中,路径可以是指文件或仅是目录。 指定路径也可以是相对路径或者服务器和共享名称的统一命名约定 (UNC) 路径。 例如,以下都是可接受的路径:

  • C# 中的“c:\\MyDir”或 Visual Basic 中的“c:\MyDir”。

  • C# 中的“MyDir\\MySubdir”或 Visual Basic 中的“MyDir\MySubDir”。

  • C# 中的“\\\\MyServer\\MyShare”或 Visual Basic 中的“\\MyServer\MyShare”。

默认情况下,向所有用户授予对新目录的完全读/写访问权限。 如果在以目录分隔符结尾的路径字符串处要求提供某个目录的权限,会导致要求提供该目录所含的所有子目录的权限(如“C:\Temp\”)。 如果仅需要某个特定目录的权限,则该字符串应该以句号结尾(例如“C:\Temp\.”)。

有关通用 I/O 任务的列表,请参见通用 I/O 任务

下面的代码示例确定指定的目录是否存在,如果存在,则删除该目录;如果不存在,则创建该目录。 然后,此示例将移动此目录,在其中创建一个文件并对文件进行计数。


using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        // Specify the directories you want to manipulate.
        string path = @"c:\MyDir";
        string target = @"c:\TestDir";

        try 
        {
            // Determine whether the directory exists.
            if (!Directory.Exists(path)) 
            {
                // Create the directory it does not exist.
                Directory.CreateDirectory(path);
            }

            if (Directory.Exists(target)) 
            {
                // Delete the target to ensure it is not there.
                Directory.Delete(target, true);
            }

            // Move the directory.
            Directory.Move(path, target);

            // Create a file in the directory.
            File.CreateText(target + @"\myfile.txt");

            // Count the files in the target directory.
            Console.WriteLine("The number of files in {0} is {1}",
                target, Directory.GetFiles(target).Length);
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        } 
        finally {}
    }
}


下面的代码示例演示如何计算目录的大小。


// The following example calculates the size of a directory
// and its subdirectories, if any, and displays the total size
// in bytes.

using System;
using System.IO;

public class ShowDirSize 
{
    public static long DirSize(DirectoryInfo d) 
    {    
        long Size = 0;    
        // Add file sizes.
        FileInfo[] fis = d.GetFiles();
        foreach (FileInfo fi in fis) 
        {      
            Size += fi.Length;    
        }
        // Add subdirectory sizes.
        DirectoryInfo[] dis = d.GetDirectories();
        foreach (DirectoryInfo di in dis) 
        {
            Size += DirSize(di);   
        }
        return(Size);  
    }
    public static void Main(string[] args) 
    {
        if (args.Length != 1) 
        {
            Console.WriteLine("You must provide a directory argument at the command line.");    
        } 
        else 
        {  
            DirectoryInfo d = new DirectoryInfo(args[0]);
            long dsize = DirSize(d);
            Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, dsize);
        }
    }
}


.NET Framework

受以下版本支持:4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

社区附加资源

添加
显示:
© 2014 Microsoft