Vba excel fso методы
FileSystemObject – это объект, который предоставляет доступ к файловой системе компьютера: дискам, папкам (каталогам), файлам.
Объект FileSystemObject обеспечивает в коде VBA Excel следующие возможности:
- Проверка существования диска, папки или файла.
- Создание новой папки.
- Создание текстового файла и предоставление последовательного доступа для записи.
- Открытие текстового файла и предоставление последовательного доступа для записи или чтения.
- Копирование, перемещение и удаление папок и файлов.
- Работа с путями к папкам и файлам.
- Возвращение имен дисков, папок и файлов.
Создание, свойство, методы
Создание экземпляра FileSystemObject
Создать новый экземпляр объекта FileSystemObject можно с помощью раннего или позднего связывания.
Раннее связывание
Позднее связывание
Свойство FileSystemObject
В VBA Excel у объекта FileSystemObject есть только одно свойство (Excel 2016):
Свойство | Описание |
---|---|
Drives | Возвращение коллекции всех дисков на компьютере |
Методы FileSystemObject
Свойство | Описание |
---|---|
BuildPath | Добавление имени в существующий путь |
CopyFile | Копирование одного или нескольких файлов из одного расположения в другое |
CopyFolder | Копирование одной или нескольких папок из одного расположения в другое |
CreateFolder | Создание новой папки |
CreateTextFile | Создание текстового файла и возвращение объекта TextStream, используемого для записи в файл |
DeleteFile | Удаление одного или нескольких указанных файлов |
DeleteFolder | Удаление одной или нескольких указанных папок |
DriveExists | Проверка существования указанного диска |
FileExists | Проверка существования указанного файла |
FolderExists | Проверка существования указанной папки |
GetAbsolutePathName | Возвращение полного пути из корневого каталога диска для указанного пути |
GetBaseName | Возвращение базового имени указанного файла или папки |
GetDrive | Возвращение объекта Drive, соответствующего диску в указанном пути |
GetDriveName | Возвращение имени диска указанного пути |
GetExtensionName | Возвращение расширения файла для последнего компонента в указанном пути |
GetFile | Возвращение файла по указанному пути |
GetFileName | Возвращение имени файла или папки для последнего компонента в указанном пути |
GetFileVersion | Возвращение версии файла для последнего компонента в указанном пути |
GetFolder | Возвращение папки по указанному пути |
GetParentFolderName | Возвращение имени родительской папки последнего компонента в указанном пути |
GetSpecialFolder | Возвращение пути к некоторым специальным папкам Windows |
GetStandardStream | Возвращение стандартного ввода, вывода или потока ошибок |
GetTempName | Возвращение созданного случайным образом временного файла или папки |
Move | Перемещение указанного файла или папки из одного места в другое |
MoveFile | Перемещение одного или нескольких файлов из одного места в другое |
MoveFolder | Перемещение одного или нескольких папок из одного места в другое |
OpenTextFile | Открытие файла по указанному пути и возвращение объекта TextStream, используемого для чтения, записи и добавления данных в файл |
Смотрите, как с помощью VBA Excel можно открыть папку в проводнике Windows для просмотра.
Примеры кода с FileSystemObject
Пример 1
Получение списка всех дисков на компьютере с помощью свойства Drives:
Приведенный ниже код иллюстрирует использование объекта FileSystemObject для возврата объекта TextStream, который можно читать, и в который можно записать данные.
- Функция CreateObject возвращает объект FileSystemObject ( fs ).
- Метод CreateTextFile создает файл в качестве объекта TextStream ( a ).
- Метод WriteLine записывает строку текста в созданный текстовый файл.
- Метод Close опустошает буфер и закрывает файл.
Методы
Метод | Описание |
---|---|
BuildPath | Добавляет имя в существующий путь. |
CopyFile | Копирует один или несколько файлов из одного расположения в другое. |
CopyFolder | Копирует одну или несколько папок из одного расположения в другое. |
CreateFolder | Создает новую папку. |
CreateTextFile | Создает текстовый файл и возвращает объект TextStream, который можно использовать для чтения или записи в файл. |
DeleteFile | Удаляет один или несколько указанных файлов. |
DeleteFolder | Удаляет одну или несколько указанных папок. |
DriveExists | Проверяет, существует ли указанный диск. |
FileExists | Проверяет, существует ли указанный файл. |
FolderExists | Проверяет, существует ли указанная папка. |
GetAbsolutePathName | Возвращает полный путь из корневого каталога диска для указанного пути. |
GetBaseName | Возвращает базовое имя указанного файла или папки. |
GetDrive | Возвращает объект Drive, соответствующий диску в указанном пути. |
GetDriveName | Возвращает имя диска указанного пути. |
GetExtensionName | Возвращает имя расширения файла для последнего компонента в указанном пути. |
GetFile | Возвращает объект файла для указанного пути. |
GetFileName | Возвращает имя файла или папки для последнего компонента в указанном пути. |
GetFolder | Возвращает объект Folder для указанного пути. |
GetParentFolderName | Возвращает имя родительской папки последнего компонента в указанном пути. |
GetSpecialFolder | Возвращает путь к некоторым специальным папкам Windows. |
GetTempName | Возвращает созданный случайным образом временный файл или папку. |
Move | Перемещает заданный файл или указанную папку из одного места в другое. |
MoveFile | Перемещает один или несколько файлов из одного места в другое. |
MoveFolder | Перемещает одну или несколько папок из одного места в другое. |
OpenAsTextStream | Открывает указанный файл и возвращает объект TextStream, который можно использовать для считывания, записи и дополнения данных в файле. |
OpenTextFile | Открывает файл и возвращает объект TextStream, который можно использовать для доступа к файлу. |
WriteLine | Записывает заданную строку и символ новой строки в файл TextStream. |
Свойства
Свойство | Описание |
---|---|
Drives | Возвращает коллекцию всех объектов Drive на компьютере. |
Name | Устанавливает или возвращает имя указанного файла или заданной папки. |
Path | Возвращает путь для указанного файла, диска или указанной папки. |
Size | Для файлов возвращает размер указанного файла в байтах; для папок возвращает размер всех файлов и вложенных папок в байтах. |
Type | Возвращает сведения о типе файла или папки (например, для файлов с расширением .TXT возвращается "Text Document"). |
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
В следующем коде иллюстрируется получение объекта File и просмотр одного из его свойств.
Коллекции
Сбор | Описание |
---|---|
Файлы | Возвращает коллекцию всех файлов в указанной папке. |
Методы
Метод | Описание |
---|---|
Копировать | Копирует указанный файл из одного расположения в другое. |
Удаление | Удаляет указанный файл. |
Move | Перемещает указанный файл из одного расположения в другое. |
OpenAsTextStream | Открывает указанный файл и возвращает объект TextStream для доступа к файлу. |
Свойства
Свойство | Описание |
---|---|
Attributes | Задает или возвращает атрибуты указанного файла. |
DateCreated | Возвращает дату и время создания указанного файла. |
DateLastAccessed | Возвращает дату и время последнего доступа к указанному файлу. |
DateLastModified | Возвращает дату и время последнего изменения указанного файла. |
Drive | Возвращает письмо диска, в котором находится указанный файл или папка. |
Название | Задает или возвращает имя указанного файла. |
ParentFolder | Возвращает объект папки для родителя указанного файла. |
Путь | Возвращает путь для указанного файла. |
ShortName | Возвращает короткое имя указанного файла (конвенция именования 8.3). |
ShortPath | Возвращает короткий путь указанного файла (конвенция именования 8.3). |
Размер | Возвращает размер указанного файла в bytes. |
Тип | Возвращает тип указанного файла. |
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
В этом пошаговом руководстве приводятся основные сведения о файловом вводе-выводе в Visual Basic. В нем описывается создание небольшого приложения, перечисляющего текстовые файлы в каталоге и анализирующего их. Для каждого выбранного текстового файла приложение предоставляет атрибуты файла и первую строку содержимого. Кроме того, предоставляется возможность записать информацию в файл журнала.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.
Создание проекта
В меню Файл выберите пункт Создать проект.
Откроется диалоговое окно Создание проекта .
В области Установленные шаблоны разверните узел Visual Basic и выберите элемент Windows. В середине области Шаблоны щелкните Приложение Windows Forms.
В поле имя введите , чтобы задать имя проекта, и нажмите кнопку ОК.
Visual Studio добавит проект в обозреватель решений, после чего откроется конструктор Windows Forms.
Добавьте в форму элементы управления из приведенной ниже таблицы и установите для их свойств соответствующие значения.
Выбор папки и перечисление файлов в ней
Создайте обработчик событий нажатия Click для кнопки browseButton , дважды щелкнув этот элемент управления в форме. Откроется редактор кода.
Добавьте следующий код в обработчик событий Click .
FolderBrowserDialog1.ShowDialog Вызов открывает диалоговое окно FolderBrowserDialog1.ShowDialog . После нажатия пользователем кнопки ОК свойство отправляется в качестве аргумента ListFiles в метод, который добавляется на следующем шаге.
Добавьте приведенный ниже метод ListFiles .
Этот код сперва очищает элемент ListBox.
Затем метод GetFiles возвращает коллекцию строк — по одной для каждого файла в каталоге. Метод GetFiles принимает аргумент шаблона поиска, чтобы извлечь файлы, соответствующие определенному шаблону. В этом примере возвращаются только файлы с расширением TXT.
Строки, возвращаемые GetFiles методом, затем добавляются в GetFiles .
Элемент ListBox содержит список TXT-файлов в выбранной папке.
Остановите работу приложения.
Получение атрибутов файла и содержимого текстового файла
Создайте обработчик событий нажатия Click для кнопки examineButton , дважды щелкнув этот элемент управления в форме.
Добавьте следующий код в обработчик событий Click .
Этот код проверяет, выбран ли элемент в элементе ListBox . Затем он получает запись пути к файлу из элемента ListBox . Метод FileExists позволяет проверить, существует ли файл.
Путь к файлу передается как аргумент методу GetTextForOutput , который добавляется в следующем шаге. Этот метод возвращает строку, содержащую информацию о файле. Информация о файле отображается в элементе MessageBox.
Добавьте приведенный ниже метод GetTextForOutput .
Метод GetFileInfo используется в коде для получения параметров файла. Параметры файла добавляются в StringBuilder.
Метод OpenTextFileReader считывает содержимое файла в StreamReader. Первая строка содержимого файла извлекается из StreamReader и добавляется в StringBuilder .
Выберите файл в ListBox , а затем нажмите кнопку ListBox . В окне MessageBox будет выведена информация о файле.
Остановите работу приложения.
Добавление записи в журнал
В конец обработчика событий examineButton_Click добавьте приведенный ниже код.
Код задает путь к файлу журнала, чтобы файл журнала помещался в тот же каталог, где находится выбранный файл. Запись журнала должна содержать текущие дату и время, а далее информацию о файле.
Метод WriteAllText, которому передается аргумент append со значением True , используется для создания записи в журнале.
Запустите приложение. Перейдите к текстовому файлу, выберите его в ListBox , установите флажок ListBox и нажмите кнопку проверить. Проверьте, добавлена ли запись в файл log.txt .
Остановите работу приложения.
Использование текущего каталога
Создайте обработчик событий для события Form1_Load , дважды щелкнув форму.
Добавьте в обработчик событий приведенный ниже код.
Этот код задает текущий каталог в качестве каталога по умолчанию для обозревателя папок.
Запустите приложение. При первом нажатии кнопки Обзор открывается диалоговое окно Выбор папки с текущим каталогом.
Остановите работу приложения.
Выборочное включение элементов управления
Добавьте приведенный ниже метод SetEnabled .
Метод SetEnabled включает и отключает элементы управления в зависимости от того, выбран ли элемент в элементе ListBox .
Создайте обработчик событий SelectedIndexChanged для элемента filesListBox , дважды щелкнув элемент управления ListBox в форме.
Добавьте вызов метода SetEnabled в новый обработчик событий filesListBox_SelectedIndexChanged .
Добавьте вызов метода SetEnabled в конце обработчика событий browseButton_Click .
Добавьте вызов метода SetEnabled в конце обработчика событий Form1_Load .
Запустите приложение. Флажок сохранить результаты и кнопка проверить отключены, если элемент не выбран в .
Ниже приведен полный пример.
Полный пример с использованием System.IO
The following code illustrates how the FileSystemObject object is used to return a TextStream object that can be read from or written to:
In the example code:
- The CreateObject function returns the FileSystemObject ( fs ).
- The CreateTextFile method creates the file as a TextStream object ( a ).
- The WriteLine method writes a line of text to the created text file.
- The Close method flushes the buffer and closes the file.
Methods
Method | Description |
---|---|
BuildPath | Appends a name to an existing path. |
CopyFile | Copies one or more files from one location to another. |
CopyFolder | Copies one or more folders from one location to another. |
CreateFolder | Creates a new folder. |
CreateTextFile | Creates a text file and returns a TextStream object that can be used to read from, or write to the file. |
DeleteFile | Deletes one or more specified files. |
DeleteFolder | Deletes one or more specified folders. |
DriveExists | Checks if a specified drive exists. |
FileExists | Checks if a specified file exists. |
FolderExists | Checks if a specified folder exists. |
GetAbsolutePathName | Returns the complete path from the root of the drive for the specified path. |
GetBaseName | Returns the base name of a specified file or folder. |
GetDrive | Returns a Drive object corresponding to the drive in a specified path. |
GetDriveName | Returns the drive name of a specified path. |
GetExtensionName | Returns the file extension name for the last component in a specified path. |
GetFile | Returns a File object for a specified path. |
GetFileName | Returns the file name or folder name for the last component in a specified path. |
GetFolder | Returns a Folder object for a specified path. |
GetParentFolderName | Returns the name of the parent folder of the last component in a specified path. |
GetSpecialFolder | Returns the path to some of Windows' special folders. |
GetTempName | Returns a randomly generated temporary file or folder. |
Move | Moves a specified file or folder from one location to another. |
MoveFile | Moves one or more files from one location to another. |
MoveFolder | Moves one or more folders from one location to another. |
OpenAsTextStream | Opens a specified file and returns a TextStream object that can be used to read from, write to, or append to the file. |
OpenTextFile | Opens a file and returns a TextStream object that can be used to access the file. |
WriteLine | Writes a specified string and new-line character to a TextStream file. |
Properties
Property | Description |
---|---|
Drives | Returns a collection of all Drive objects on the computer. |
Name | Sets or returns the name of a specified file or folder. |
Path | Returns the path for a specified file, folder, or drive. |
Size | For files, returns the size, in bytes, of the specified file; for folders, returns the size, in bytes, of all files and subfolders contained in the folder. |
Type | Returns information about the type of a file or folder (for example, for files ending in .TXT, "Text Document" is returned). |
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Читайте также: