DirectoryInfo 类

.NET Framework 类库 

DirectoryInfo 类

公开用于创建、移动和枚举目录和子目录的实例方法。

有关此类型所有成员的列表,请参阅 DirectoryInfo 成员

System.Object
   System.MarshalByRefObject
      System.IO.FileSystemInfo
         System.IO.DirectoryInfo

[Visual Basic]
<Serializable>
NotInheritable Public Class DirectoryInfo
   Inherits FileSystemInfo
[C#]
[Serializable]
public sealed class DirectoryInfo : FileSystemInfo
[C++]
[Serializable]
public __gc __sealed class DirectoryInfo : public FileSystemInfo
[JScript]
public
   Serializable
class DirectoryInfo extends FileSystemInfo
线程安全

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

备注

DirectoryInfo 类用于典型操作,如复制、移动、重命名、创建和删除目录。

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

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

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

  • C# 中的“c://MyDir//MyFile.txt”或 Visual Basic 中的“c:/MyDir/MyFile.txt”。
  • C# 中的“c://MyDir”或 Visual Basic 中的“c:/MyDir”。
  • C# 中的“MyDir//MySubdir”或 Visual Basic 中的“MyDir/MySubDir”。
  • C# 中的“MyServer//MyShare”或 Visual Basic 中的“//MyServer/MyShare”。

默认情况下,向所有用户授予对新目录的完全读/写访问权限。

有关使用此类的示例,请参见下面的“示例”部分。下表列出了其他典型或相关的 I/O 任务的示例。

若要执行此操作...请参见本主题中的示例...
创建文本文件。 向文件写入文本
写入文本文件。 向文件写入文本
读取文本文件。 从文件读取文本
复制目录。Directory
重命名或移动目录。Directory.Move

DirectoryInfo.MoveTo

删除目录。Directory.Delete

DirectoryInfo.Delete

创建目录。CreateDirectory

Directory

创建子目录。CreateSubdirectory
查看目录中的文件。Name
查看目录的子目录。GetDirectories

GetDirectories

查看目录的所有子目录中的所有文件。GetFileSystemInfos
查看目录大小。Directory
确定文件是否存在。Exists
按大小对目录中的文件排序。GetFileSystemInfos
确定目录是否存在。Exists

.NET Framework 精简版平台说明:  不支持获取或设置目录属性。

示例

[Visual Basic, C#, C++] 下面的示例演示了 DirectoryInfo 类的某些主要成员。

[Visual Basic] 
Imports System
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:/MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

[C#] 
using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:/MyDir");
        try 
        {
            // Determine whether the directory exists.
            if (di.Exists) 
            {
                // Indicate that the directory already exists.
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");

        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        } 
        finally {}
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::IO;

int main() {
    // Specify the directories you want to manipulate.
    DirectoryInfo* di = new DirectoryInfo(S"c://MyDir");
    try {
        // Determine whether the directory exists.
        if (di->Exists) {
            // Indicate that the directory already exists.
            Console::WriteLine(S"That path exists already.");
            return 0;
        }

        // Try to create the directory.
        di->Create();
        Console::WriteLine(S"The directory was created successfully.");

        // Delete the directory.
        di->Delete();
        Console::WriteLine(S"The directory was deleted successfully.");
    } catch (Exception* e) {
        Console::WriteLine(S"The process failed: {0}", e);
    } 
}

[JScript] 没有可用于 JScript 的示例。若要查看 Visual Basic、C# 或 C++ 示例,请单击页左上角的“语言筛选器”按钮 语言筛选器

要求

命名空间: System.IO

平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版

程序集: Mscorlib (在 Mscorlib.dll 中)

请参见

DirectoryInfo 成员 | System.IO 命名空间 | File | Attributes | Directory | Path | 使用 I/O | 从文件读取文本 | 向文件写入文本 | 基本的文件 I/O | 对刚创建的数据文件进行读取和写入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值