VBA GetFolder и GetFile (получение свойств файла и папки)

В этом руководстве будет показано, как использовать методы GetFolder и GetFile объекта FileSystemObject.

Получение свойств папки и файла с помощью VBA FileSystemObject

Метод GetFolder возвращает объект Folder, соответствующий папке по указанному пути, и позволяет вам получить доступ к его свойствам. Метод GetFile делает то же самое с указанным файлом.

Установить ссылку VBA

Во-первых, при использовании FileSystemObjects вам может потребоваться установить ссылку на библиотеку времени выполнения сценария VB: откройте редактор Visual Basic (ALT + F11), выберите Инструменты> Ссылки из раскрывающегося меню и установите флажок «Среда выполнения сценариев Microsoft».

FileSystemObject

Во-вторых, вы должны создать FileSystemObject:

12 Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")

Теперь у вас есть доступ к GetFolder и другим методам FileSystemObject.

Использование метода GetFolder

После указания папки, к которой вы хотите получить доступ

1 Установите fld = FSO.GetFolder ("C: \ Src \")

вы можете скопировать это:

1 fld.Copy "C: \ NewFolder \"

подвинь это:

1 fld.Move "C: \ NewFolder \"

удалите это:

1 fld.Delete

или создайте в нем новый текстовый файл:

1 fld.CreateTextFile «NewTextFile.txt»

Используя этот метод, вы получаете доступ к свойствам папки, таким как ее атрибуты (fld.Attributes), дата и время, когда она была создана (fld.DateCreated), последний доступ (fld.DateLastAccessed), последнее изменение (fld.DateLastModified) ), букву диска (fld.Drive), его имя и короткое имя (fld.Name, fld.ShortName), его путь и короткий путь (fld.Path, fld.ShortPath), его размер (fld.Size), его type (fld.Type), его родительская папка (fld.ParentFolder), проверьте, является ли она корневой папкой (fld.IsRootFolder), или вы можете перебирать, подсчитывать и т. д. ее файлы (fld.Files) или подпапки (fld. Вложенные папки).

Объединение всего этого в процедуру будет выглядеть так:

123456789101112131415161718192021222324 Подложка FSOGetFolder ()Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")Установите fld = FSO.GetFolder ("C: \ Src \")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print имя поляDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.TypeДля каждой складки в полях.Debug.Print fold.NameСледующая складкаДля каждого файла в полевых файлахDebug.Print fil.NameСледующий filКонец подписки

Обратите внимание, что вы должны нажать Ctrl + G, чтобы увидеть результат команды Debug.Print в непосредственном окне VBA.

GetParentFolderName Метод

В качестве альтернативы вышеупомянутому способу вы можете получить доступ к имени родительской папки папки с помощью этого кода:

1234 Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \")

ParentFold в этом случае будет «C: \ ParentTest \».

Обратите внимание, что этот метод не разрешает путь и не проверяет наличие указанного пути.

GetSpecialFolder Метод

С помощью метода GetSpecialFolder, передав 0, 1 или 2 в качестве аргумента, вы можете получить путь к вашей папке Windows (с файлами, установленными операционной системой Windows), путь к вашей системной папке (с библиотеками, шрифтами и драйверами устройств) и временный путь к папке (папка, которая используется для хранения временных файлов) соответственно.

1234567 Sub FSOGetSpecialFolder ()Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) ‘Результат может быть: C: \ Windows \ System32Конец подписки

GetFile Метод

Вы можете использовать метод GetFile так же, как метод GetFolder. После указания файла, к которому вы хотите получить доступ

1 Установите fil = FSO.GetFile ("C: \ Src \ Test.xlsx")

вы можете скопировать это:

1 fil.Copy "C: \ Dst \"

подвинь это:

1 fil.Move "C: \ Dst \"

удалите это:

1 fil.Delete

или откройте его как объект TextStream:

1 fil.OpenAsTextStream

Таким же образом можно получить доступ к свойствам файла, таким как его атрибуты, дата и время, когда он был создан, последний доступ или последнее изменение, буква диска, имя и короткое имя, путь и короткий путь, размер, тип и его родительская папка. как описано в методе GetFolder.

wave wave wave wave wave