DirectoryInfo 类
时间:2008-07-16 来源:*^cherish^*
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
线程安全
此类型的所有公共静态(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 精简版平台说明: 不支持获取或设置目录属性。
下面的示例演示了 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