VBA GetFolder & GetFile (Вземете свойства на файл и папка)

Този урок ще покаже как да използвате методите GetFolder и GetFile на FileSystemObject.

Вземете свойствата на папката и файла с VBA FileSystemObject

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

Задайте VBA Reference

Първо, когато използвате FileSystemObjects, може да се наложи да зададете препратка към библиотеката по време на изпълнение на скрипта VB: отворете редактора на Visual Basic (ALT+F11), изберете Инструменти> Препратки от падащото меню и поставете отметка в квадратчето за „Microsoft Scripting Runtime“.

FileSystemObject

Второ, трябва да създадете FileSystemObject:

12 Затъмнете FSO като нов FileSystemObjectЗадайте FSO = CreateObject ("Scripting.FileSystemObject")

Сега имате достъп до GetFolder и другите методи на FileSystemObject.

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

След като посочите папката, до която искате да получите достъп

1 Задайте fld = FSO.GetFolder ("C: \ Src \")

можете да го копирате:

1 fld.Копирайте "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), неговият въведете (fld.Type), родителската му папка (fld.ParentFolder), проверете дали това е основна папка (fld.IsRootFolder) или можете да прегледате, преброите и т.н. файловете си (fld.Files) или подпапки (fld. Подпапки).

Обединяването на всичко това в процедура ще изглежда така:

123456789101112131415161718192021222324 Sub FSOGetFolder ()Затъмнете FSO като нов FileSystemObjectЗадайте FSO = CreateObject ("Scripting.FileSystemObject")Задайте fld = FSO.GetFolder ("C: \ Src \")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print fld.NameDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.TypeЗа всяко сгъване В fld.SubFoldersDebug.Print fold.NameСледващо сгъванеЗа всеки fil In fld.FilesDebug.Print fil.NameСледващ филEnd Sub

Моля, обърнете внимание, че трябва да натиснете Ctrl+G, за да видите резултата от командата Debug.Print в непосредствения прозорец на VBA.

Метод GetParentFolderName

Като алтернатива на гореспоменатия начин можете да получите достъп до името на родителската папка на папка, като използвате този код:

1234 Затъмнете 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 ()Затъмнете FSO като нов FileSystemObjectЗадайте FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) „Резултатът може да бъде: C: \ Windows \ System32End Sub

Метод 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