Цей підручник покаже, як використовувати методи GetFolder та GetFile для FileSystemObject.
Отримайте властивості папок та файлів за допомогою VBA FileSystemObject
Метод GetFolder повертає об’єкт Folder, відповідний папці у вказаному шляху, і дозволяє отримати доступ до його властивостей. Метод GetFile робить те саме з вказаним файлом.
Встановити посилання VBA
По-перше, під час використання FileSystemObjects вам може знадобитися встановити посилання на бібліотеку виконання сценарію VB: відкрийте редактор Visual Basic (ALT+F11), виберіть Інструменти> Посилання у спадному меню та встановіть прапорець біля "Виконання сценаріїв Microsoft".
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.Видалити |
або створіть у ньому новий текстовий файл:
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.SubFoldersНалагодження. Друк складок. Ім'яНаступний згинДля кожного 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.