Классы DirectoryInfo и FileInfo
В отличие от обобщенных классов Directory и Filе классы DirectoryInfo и FileInfо инкапсулируют конкретные (или потенциально существующие) каталоги и файлы. Чтобы использовать их, необходимо предварительно создать экземпляр класса. Под потенциальным существованием мы имеем в виду, что объект Directorylnfo или Filelnfo может быть создан даже в том случае, если файл или каталог с заданным именем еще не существует и создается при последующем вызове метода Create.
Как правило, при создании экземпляров этих классов при вызове конструктора указывается имя каталога или файла. Пример:
Dim myDirectory As Directorylnfo myDirectory = New Directorylnfo("C:\Test Directory")
Текущий каталог обозначается символом ".":
Dim currentDir As New Directorylnfo(".")
После создания объекта Directorylnfo можно запросить различные сведения о соответствующем каталоге – например, время создания:
MsgBox(myDirectory.GreatienTime)
Как упоминалось выше, одна из самых замечательных особенностей этих классов заключается в том, что их члены возвращают объекты, а не строки. Например, в следующей программе вызов GetFiles в выделенной строке возвращает коллекцию объектов Filelnfo, что позволяет при необходимости вызвать методы этих объектов.
Imports System.IO Module Modulel Sub Main() Dim myDi rectory As Directorylnfo Try myDirectory =New DirectoryInfo("C:\Test Directory") Dim aFile As File Info For Each aFile In myDirectory.GetFiles Consol e. WriteLi ne("The fi1e named " & aFile. Full Name & _ "has length " & aFile.Length) Next Catch e As Exception MsgBox("eeks – an exception " & e.StackTrace) Finally Console.WriteLine("Press enter to end") Console.ReadLine() End Try End Sub End Module