.NET Framework 类库 |
公开用于创建、移动和枚举目录和子目录的实例方法。
有关此类型所有成员的列表,请参阅 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 |
删除目录。 | Directory.Delete |
创建目录。 | CreateDirectory |
创建子目录。 | CreateSubdirectory |
查看目录中的文件。 | Name |
查看目录的子目录。 | 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 | 对刚创建的数据文件进行读取和写入