Чтение и запись в файл, открытый с помощью оператора Open. Операторы Input, Line Input, Write и функция EOF. Примеры использования в VBA Excel.
Операторы чтения и записи в файл
Оператор Input #
Оператор Input # считывает данные из открытого файла с последовательным доступом и присваивает эти данные переменным.
Оператор Input # используется только с файлами, открытыми в режиме Input или Binary. При прочтении стандартные строковые или числовые значения присваиваются переменным без изменения.
Синтаксис оператора Input #:
Input #Номер_файла, Переменные |
Компоненты оператора Input #:
- Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
- Переменные – обязательный параметр, представляющий из себя список переменных, разделенных запятой, которым присваиваются значения, считанные из файла.
Особенности применения оператора Input #:
- Элементы данных в файле должны быть указаны в том же порядке, что и переменные в списке Переменные, и соответствовать им по типу данных. Если переменная числовая, а данные текстовые, этой переменной будет присвоено нулевое значение.
- Если при чтении данных достигнут конец файла, чтение прерывается и возникает ошибка. Для ее предупреждения в коде VBA Excel используется функция EOF.
- Чтобы данные из файла могли быть правильно прочитаны и записаны в переменные с помощью оператора Input #, они должны быть записаны в файл с помощью оператора Write #. Он обеспечивает правильное разделение каждого из полей (элементов) данных.
Оператор Line Input #
Оператор Line Input # считывает одну строку из открытого файла с последовательным доступом и присваивает ее значение строковой переменной.
Оператор Line Input # считывает из файла по одному символу до тех пор, пока не встретится символ возврата каретки (Chr(13)) или последовательность символа возврата каретки и перевода строки (Chr (13) + Chr(10)).
Синтаксис оператора Line Input #:
Line Input #Номер_файла, Переменная |
Компоненты оператора Line Input #:
- Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
- Переменная – обязательный параметр, представляющий из себя имя переменной, объявленной как String или Variant, которой присваивается строка, считанная из файла.
Оператор Write #
Оператор Write # записывает данные в файл с последовательным доступом.
Синтаксис оператора Write #:
Write #Номер_файла, [Данные] |
Компоненты оператора Write #:
- Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
- Данные – необязательный параметр, представляющий из себя одно или несколько числовых или строковых выражений, разделенных запятой, которые нужно записать в файл.
Особенности применения оператора Write #:
- Данные, записанные с помощью оператора Write #, считываются из файла с помощью оператора Input #.
- Если опустить параметр Данные и добавить запятую после Номер_файла, в файл будет добавлена пустая строка.
- Несколько выражений в списке Данные могут быть разделены точкой с запятой или запятой.
- Числовые данные всегда записываются с точкой в качестве разделителя целой и дробной части.
- Оператор Write # вставляет запятые между элементами и прямые парные кавычки вокруг строк при их записи в файл.
- После записи в файл последнего символа из параметра Данные оператор Write # вставляет символы возврата каретки и перевода строки (Chr (13) + Chr(10)).
Функция EOF
Функция EOF возвращает логическое значение True, когда достигнут конец файла, открытого для последовательного (Input) или произвольного (Random) доступа.
Синтаксис функции EOF:
Номер_файла – это номер, присвоенный файлу при открытии с помощью оператора Open.
Функция EOF используется для предупреждения ошибок, вызываемых попытками выполнить чтение после конца файла. Она возвращает значение False, пока не будет достигнут конец файла.
Примеры чтения и записи в файл
Пример 1
Открытие (или создание, если он не существует) текстового файла для чтения и записи и запись в него одной строки, состоящей из двух текстовых и одного числового значений. Файл с именем myFile1.txt будет создан в той же папке, где расположен файл Excel с кодом VBA.
Sub Test1() Dim ff As Integer ‘Получаем свободный номер для открываемого файла ff = FreeFile ‘Открываем (или создаем) файл для чтения и записи Open ThisWorkbook.Path & «myFile1.txt» For Output As ff ‘Записываем в файл одну строку Write #ff, «Дает корова молоко!», _ «Куда идет король?», 25.35847 ‘Закрываем файл Close ff ‘Открываем файл для просмотра ThisWorkbook.FollowHyperlink (ThisWorkbook.Path & «myFile1.txt») End Sub |
Строки и число можно предварительно присвоить переменным, объявленным с соответствующими типами данных, и использовать их для записи данных в файл (в строках кода с оператором Write #, как в этом и следующем примерах).
Пример 2
Открытие (или создание, если он не существует) файла без расширения для чтения и записи и запись в него трех строк: двух текстовых и одной в числовом формате. Файл с именем myFile2 будет создан в той же папке, где расположен файл Excel с кодом VBA.
Так как у файла нет расширения, Windows выведет диалоговое окно для выбора открывающей его программы. Выберите любой текстовый редактор или интернет-браузер.
Sub Test2() Dim ff As Integer ‘Получаем свободный номер для открываемого файла ff = FreeFile ‘Открываем (или создаем) файл для чтения и записи Open ThisWorkbook.Path & «myFile2» For Output As ff ‘Записываем в файл три строки Write #ff, «Дает корова молоко!» Write #ff, «Куда идет король?» Write #ff, 25.35847 ‘Закрываем файл Close ff ‘Открываем файл для просмотра ThisWorkbook.FollowHyperlink (ThisWorkbook.Path & «myFile2») End Sub |
Пример 3
Считываем строку, разделенную на отдельные элементы, из файла myFile1.txt и записываем в три переменные, по типу данных соответствующие элементам.
Sub Test3() Dim ff As Integer, str1 As String, _ str2 As String, num1 As Single ‘Получаем свободный номер для открываемого файла ff = FreeFile ‘Открываем файл myFile1.txt для чтения Open ThisWorkbook.Path & «myFile1.txt» For Input As ff ‘Считываем строку из файла и записываем в переменные Input #ff, str1, str2, num1 Close ff ‘Смотрим, что записалось в переменные MsgBox «str1 = « & str1 & vbNewLine _ & «str2 = « & str2 & vbNewLine _ & «num1 = « & num1 End Sub |
Попробуйте заменить в этом примере строку Input #ff, str1, str2, num1
сначала на строку Input #ff, str1
, затем на строку Line Input #ff, str1
, чтобы наглядно увидеть разницу между операторами Input # и Line Input #.
В следующих примерах (4 и 5) замена оператора Input # на Line Input # не приведет ни к каким изменениям, так как данные в строках файла myFile2 не разделены на элементы (поля).
Пример 4
Считываем поочередно три строки из файла myFile2 и записываем в три элемента массива, объявленного как Variant, так как в этот файл ранее были записаны две строки с текстом и одна с числом.
Sub Test4() Dim ff As Integer, a(2) As Variant, i As Byte ‘Получаем свободный номер для открываемого файла ff = FreeFile ‘Открываем файл myFile2 для чтения Open ThisWorkbook.Path & «myFile2» For Input As ff ‘Считываем строки из файла и записываем в элементы массива For i = 0 To 2 Input #ff, a(i) Next Close ff ‘Смотрим, что записалось в элементы массива MsgBox «a(0) = « & a(0) & vbNewLine _ & «a(1) = « & a(1) & vbNewLine _ & «a(2) = « & a(2) End Sub |
Пример 5
Считываем с помощью цикла Do While… Loop все строки из файла myFile2 и записываем построчно в переменную, объявленную как String (число из третьей строки запишется как текст). Для остановки цикла при достижении конца файла используем функцию EOF.
Sub Test5() Dim ff As Integer, a As Variant, b As String ‘Получаем свободный номер для открываемого файла ff = FreeFile ‘Открываем файл myFile2 для чтения Open ThisWorkbook.Path & «myFile2» For Input As ff ‘Считываем строки из файла и записываем в элементы массива Do While Not EOF(ff) Input #ff, a b = b & a & vbNewLine Loop Close ff ‘Смотрим, что записалось в переменную MsgBox b End Sub |
Предыдущая часть темы об открытии файла для ввода и вывода информации опубликована в статье: Оператор Open (синтаксис, параметры). Смотрите также связанную статью: Функция FreeFile.
Смотрите, как создавать и открывать текстовые файлы с помощью методов CreateTextFile и OpenTextFile. Чтение файла, запись и добавление информации с помощью объекта TextStream.
Содержание
- OpenTextFile method
- Syntax
- Settings
- Remarks
- See also
- Support and feedback
- Оператор Open
- Синтаксис
- Замечания
- Пример
- См. также
- Поддержка и обратная связь
- Workbooks.Open method (Excel)
- Syntax
- Parameters
- Return value
- Remarks
- Example
- Support and feedback
OpenTextFile method
Opens a specified file and returns a TextStream object that can be used to read from, write to, or append to the file.
Syntax
object.OpenTextFile (filename, [ iomode, [ create, [ format ]]])
The OpenTextFile method has these parts:
Part | Description |
---|---|
object | Required. Always the name of a FileSystemObject. |
filename | Required. String expression that identifies the file to open. |
iomode | Optional. Indicates input/output mode. Can be one of three constants: ForReading, ForWriting, or ForAppending. |
create | Optional. Boolean value that indicates whether a new file can be created if the specified filename doesn’t exist. The value is True if a new file is created; False if it isn’t created. The default is False. |
format | Optional. One of three Tristate values used to indicate the format of the opened file. If omitted, the file is opened as ASCII. |
Settings
The iomode argument can have any of the following settings:
Constant | Value | Description |
---|---|---|
ForReading | 1 | Open a file for reading only. You can’t write to this file. |
ForWriting | 2 | Open a file for writing only. Use this mode to replace an existing file with new data. You can’t read from this file. |
ForAppending | 8 | Open a file and write to the end of the file. You can’t read from this file. |
The format argument can have any of the following settings:
Constant | Value | Description |
---|---|---|
TristateUseDefault | -2 | Opens the file by using the system default. |
TristateTrue | -1 | Opens the file as Unicode. |
TristateFalse | 0 | Opens the file as ASCII. |
The following code illustrates the use of the OpenTextFile method to open a file for appending text:
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.
Источник
Оператор Open
Включает операции ввода-вывода для файла.
Синтаксис
ОткрытьpathnameДлярежима [ access ] [ lock ] As [ # ] filenumber [ Len = reclength ]
Синтаксис оператора Open состоит из следующих частей:
Part | Описание |
---|---|
путь | Обязательно. Строковое выражение, указывающее имя файла; может включать каталог или папку, а также диск. |
Обязательно. Ключевое слово, задающее режим файла: Добавление, Двоичный, Ввод, Вывод или Прямой. Если элемент не задан, файл открывается для доступа в режиме Прямой. | |
Доступа | Необязательный параметр. Ключевое слово, определяющее операции, разрешенные для открытого файла: Чтение, Запись или Чтение и запись. |
Блокировки | Необязательный параметр. Ключевое слово, определяющее операции, запрещенные для открытого файла другими процессами: Общий, Блокировка чтения, Блокировка записи и Блокировка чтения и записи. |
filenumber | Обязательно. Допустимый номер файла в диапазоне от 1 до 511 включительно. Используйте функцию FreeFile , чтобы получить следующий доступный номер файла. |
reclength | Необязательный параметр. Число меньше или равное 32767 (байт). Для файлов, открытых для прямого доступа это значение равно значению длины записи. Для файлов с последовательным доступом значение представляет собой число буферизуемых символов. |
Замечания
Перед тем как выполнять операции ввода-вывода для файла, его необходимо открыть. Оператор Open выделяет для файла буфер для операций ввода-вывода и определяет режим доступа, который будет использоваться для буфера.
Если файл, заданный элементом pathname, не существует, он будет создан при открытии файла в режиме Добавление, Двоичный, Вывод или Прямой.
Если файл уже открыт другим процессом и указанный тип доступа не разрешен, операция Open завершается ошибкой.
Предложение Len игнорируется, если выбран режимДвоичный.
В режимах Двоичный, Вход и Случайный можно открыть файл, используя другой номер файла, не закрывая файл. В режимах Добавление и Вывод необходимо сначала закрыть файл, перед тем как открыть его с другим номером.
Пример
В этом примере показаны различные способы использования оператора Open для включения операций ввода и вывода для файла.
Следующий код открывает файл в режиме последовательного ввода.
В этом примере показано открытие файла в режиме «Двоичный» только для операций записи.
В следующем примере показано открытие файла в режиме «Прямой». Файл содержит записи определяемого пользователем типа.
В этом примере кода открывается файл для последовательных выходных данных; любой процесс может считывать или записывать в файл.
В этом примере кода файл открывается в двоичном режиме для чтения. другие процессы не могут прочитать файл.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Workbooks.Open method (Excel)
Opens a workbook.
Interested in developing solutions that extend the Office experience across multiple platforms? Check out the new Office Add-ins model. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.
Syntax
expression.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
expression A variable that represents a Workbooks object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
FileName | Optional | Variant | String. The file name of the workbook to be opened. |
UpdateLinks | Optional | Variant | Specifies the way external references (links) in the file, such as the reference to a range in the Budget.xls workbook in the following formula =SUM([Budget.xls]Annual!C10:C25) , are updated. If this argument is omitted, the user is prompted to specify how links will be updated. For more information about the values used by this parameter, see the Remarks section. |
If Microsoft Excel is opening a file in the WKS, WK1, or WK3 format and the UpdateLinks argument is 0, no charts are created; otherwise, Microsoft Excel generates charts from the graphs attached to the file. ReadOnly Optional Variant True to open the workbook in read-only mode. Format Optional Variant If Microsoft Excel opens a text file, this argument specifies the delimiter character. If this argument is omitted, the current delimiter is used. For more information about the values used by this parameter, see the Remarks section. Password Optional Variant A string that contains the password required to open a protected workbook. If this argument is omitted and the workbook requires a password, the user is prompted for the password. WriteResPassword Optional Variant A string that contains the password required to write to a write-reserved workbook. If this argument is omitted and the workbook requires a password, the user will be prompted for the password. IgnoreReadOnlyRecommended Optional Variant True to have Microsoft Excel not display the read-only recommended message (if the workbook was saved with the Read-Only Recommended option). Origin Optional Variant If the file is a text file, this argument indicates where it originated, so that code pages and Carriage Return/Line Feed (CR/LF) can be mapped correctly. Can be one of the following XlPlatform constants: xlMacintosh, xlWindows, or xlMSDOS. If this argument is omitted, the current operating system is used. Delimiter Optional Variant If the file is a text file and the Format argument is 6, this argument is a string that specifies the character to be used as the delimiter. For example, use Chr(9) for tabs, use «,» for commas, use «;» for semicolons, or use a custom character. Only the first character of the string is used. Editable Optional Variant If the file is a Microsoft Excel 4.0 add-in, this argument is True to open the add-in so that it is a visible window. If this argument is False or omitted, the add-in is opened as hidden, and it cannot be unhidden. This option does not apply to add-ins created in Microsoft Excel 5.0 or later.
If the file is an Excel template, True to open the specified template for editing. False to open a new workbook based on the specified template. The default value is False. Notify Optional Variant If the file cannot be opened in read/write mode, this argument is True to add the file to the file notification list. Microsoft Excel will open the file as read-only, poll the file notification list, and then notify the user when the file becomes available. If this argument is False or omitted, no notification is requested, and any attempts to open an unavailable file will fail. Converter Optional Variant The index of the first file converter to try when opening the file. The specified file converter is tried first; if this converter does not recognize the file, all other converters are tried. The converter index consists of the row numbers of the converters returned by the FileConverters property. AddToMru Optional Variant True to add this workbook to the list of recently used files. The default value is False. Local Optional Variant True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically United States English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project). CorruptLoad Optional XlCorruptLoad Can be one of the following constants: xlNormalLoad, xlRepairFile and xlExtractData. The default behavior if no value is specified is xlNormalLoad, and does not attempt recovery when initiated through the OM.
Return value
A Workbook object that represents the opened workbook.
By default, macros are enabled when opening files programmatically. Use the AutomationSecurity property to set the macro security mode used when opening files programmatically.
You can specify one of the following values in the UpdateLinks parameter to determine whether external references (links) are updated when the workbook is opened.
Value | Description |
---|---|
0 | External references (links) will not be updated when the workbook is opened. |
3 | External references (links) will be updated when the workbook is opened. |
You can specify one of the following values in the Format parameter to determine the delimiter character for the file.
Value | Delimiter |
---|---|
1 | Tabs |
2 | Commas |
3 | Spaces |
4 | Semicolons |
5 | Nothing |
6 | Custom character (see the Delimiter argument) |
Example
The following code example opens the workbook Analysis.xls and then runs its Auto_Open macro.
The following code example imports a sheet from another workbook onto a new sheet in the current workbook. Sheet1 in the current workbook must contain the path name of the workbook to import in cell D3, the file name in cell D4, and the worksheet name in cell D5. The imported worksheet is inserted after Sheet1 in the current workbook.
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.
Источник
I want to search through existing Excel files with a macro, but I don’t want to display those files when they’re opened by the code. Is there a way to have them open «in the background», so to speak?
Teamothy
1,9903 gold badges15 silver badges24 bronze badges
asked Feb 23, 2009 at 23:08
1
Not sure if you can open them invisibly in the current excel instance
You can open a new instance of excel though, hide it and then open the workbooks
Dim app as New Excel.Application
app.Visible = False 'Visible is False by default, so this isn't necessary
Dim book As Excel.Workbook
Set book = app.Workbooks.Add(fileName)
'
' Do what you have to do
'
book.Close SaveChanges:=False
app.Quit
Set app = Nothing
As others have posted, make sure you clean up after you are finished with any opened workbooks
answered Feb 23, 2009 at 23:25
Patrick McDonaldPatrick McDonald
63.7k14 gold badges106 silver badges118 bronze badges
5
If that suits your needs, I would simply use
Application.ScreenUpdating = False
with the added benefit of accelerating your code, instead of slowing it down by using a second instance of Excel.
answered Aug 13, 2009 at 15:46
iDevlopiDevlop
24.6k11 gold badges89 silver badges147 bronze badges
3
To open a workbook as hidden in the existing instance of Excel, use following:
Application.ScreenUpdating = False
Workbooks.Open Filename:=FilePath, UpdateLinks:=True, ReadOnly:=True
ActiveWindow.Visible = False
ThisWorkbook.Activate
Application.ScreenUpdating = True
answered Jan 16, 2012 at 11:54
AshokAshok
1,0743 gold badges14 silver badges24 bronze badges
2
Using ADO (AnonJr already explained) and utilizing SQL is possibly the best option for fetching data from a closed workbook without opening that in conventional way. Please watch this VIDEO.
OTHERWISE, possibly GetObject(<filename with path>)
is the most CONCISE way. Worksheets remain invisible, however will appear in project explorer window in VBE just like any other workbook opened in conventional ways.
Dim wb As Workbook
Set wb = GetObject("C:MyData.xlsx") 'Worksheets will remain invisible, no new window appears in the screen
' your codes here
wb.Close SaveChanges:=False
If you want to read a particular sheet, need not even define a Workbook variable
Dim sh As Worksheet
Set sh = GetObject("C:MyData.xlsx").Worksheets("MySheet")
' your codes here
sh.Parent.Close SaveChanges:=False 'Closes the associated workbook
answered Jan 22, 2021 at 16:03
5
A much simpler approach that doesn’t involve manipulating active windows:
Dim wb As Workbook
Set wb = Workbooks.Open("workbook.xlsx")
wb.Windows(1).Visible = False
From what I can tell the Windows index on the workbook should always be 1
. If anyone knows of any race conditions that would make this untrue please let me know.
answered Jul 13, 2016 at 18:40
wooobiewooobie
3452 silver badges12 bronze badges
Even though you’ve got your answer, for those that find this question, it is also possible to open an Excel spreadsheet as a JET data store. Borrowing the connection string from a project I’ve used it on, it will look kinda like this:
strExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & objFile.Path & ";Extended Properties=""Excel 8.0;HDR=Yes"""
strSQL = "SELECT * FROM [RegistrationList$] ORDER BY DateToRegister DESC"
Note that «RegistrationList» is the name of the tab in the workbook. There are a few tutorials floating around on the web with the particulars of what you can and can’t do accessing a sheet this way.
Just thought I’d add.
answered Aug 13, 2009 at 15:58
AnonJrAnonJr
2,7491 gold badge28 silver badges39 bronze badges
4
The problem with both iDevlop’s and Ashok’s answers is that the fundamental problem is an Excel design flaw (apparently) in which the Open method fails to respect the Application.ScreenUpdating setting of False. Consequently, setting it to False is of no benefit to this problem.
If Patrick McDonald’s solution is too burdensome due to the overhead of starting a second instance of Excel, then the best solution I’ve found is to minimize the time that the opened workbook is visible by re-activating the original window as quickly as possible:
Dim TempWkBk As Workbook
Dim CurrentWin As Window
Set CurrentWin = ActiveWindow
Set TempWkBk = Workbooks.Open(SomeFilePath)
CurrentWin.Activate 'Allows only a VERY brief flash of the opened workbook
TempWkBk.Windows(1).Visible = False 'Only necessary if you also need to prevent
'the user from manually accessing the opened
'workbook before it is closed.
'Operate on the new workbook, which is not visible to the user, then close it...
answered Jul 22, 2014 at 19:07
pstratonpstraton
1,04014 silver badges9 bronze badges
4
Open the workbook as hidden and then set it as «saved» so that users are not prompted when they close out.
Dim w As Workbooks
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Set w = Workbooks
w.Open Filename:="\serverPriceList.xlsx", UpdateLinks:=False, ReadOnly:=True 'this is the data file were going to be opening
ActiveWindow.Visible = False
ThisWorkbook.Activate
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
w.Item(2).Saved = True 'this will suppress the safe prompt for the data file only
End Sub
This is somewhat derivative of the answer posted by Ashok.
By doing it this way though you will not get prompted to save changes back to the Excel file your reading from. This is great if the Excel file your reading from is intended as a data source for validation. For example if the workbook contains product names and price data it can be hidden and you can show an Excel file that represents an invoice with drop downs for product that validates from that price list.
You can then store the price list on a shared location on a network somewhere and make it read-only.
answered Jul 18, 2014 at 17:19
1
Open them from a new instance of Excel.
Sub Test()
Dim xl As Excel.Application
Set xl = CreateObject("Excel.Application")
Dim w As Workbook
Set w = xl.Workbooks.Add()
MsgBox "Not visible yet..."
xl.Visible = True
w.Close False
Set xl = Nothing
End Sub
You need to remember to clean up after you’re done.
answered Feb 23, 2009 at 23:43
guillermoooguillermooo
7,83515 gold badges53 silver badges58 bronze badges
1
In excel, hide the workbooks, and save them as hidden. When your app loads them they will not be shown.
Edit: upon re-reading, it became clear that these workbooks are not part of your application. Such a solution would be inappropriate for user workbooks.
answered Feb 23, 2009 at 23:18
JohnWJohnW
2,9621 gold badge27 silver badges30 bronze badges
148 / 35 / 6 Регистрация: 01.11.2013 Сообщений: 779 |
|
1 |
|
Открыть только для чтения08.07.2020, 22:05. Показов 11729. Ответов 14
При открытии Excel — евского файла появляется диалоговое окно с просьбой ввести пароль или открыть только для чтения.
0 |
amd48 779 / 461 / 79 Регистрация: 18.05.2016 Сообщений: 1,242 Записей в блоге: 4 |
||||
09.07.2020, 09:38 |
2 |
|||
Сообщение было отмечено govorun как решение Решениенагуглил на другом форуме
1 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
09.07.2020, 11:41 |
3 |
govorun, а у вас в этом файле макросы, нужные вам, есть или нужно только содержимое листов?
0 |
148 / 35 / 6 Регистрация: 01.11.2013 Сообщений: 779 |
|
09.07.2020, 22:29 [ТС] |
4 |
Из VBA открываю Excel-евский файл что бы взять содержимое листов и закрыть его. Не показывая на экране. И все бы ничего, только вот при открытии файла вылазит запрос на пароль. Портит всю картину. По умолчанию стоит «Только для чтения», в принципе мне только это и нужно. Надо как-то что-то сделать, что бы это окно на экране не появлялось. Миниатюры
0 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
10.07.2020, 05:52 |
5 |
govorun, ну тогда может просто один раз открыть с запросом, создать новый файл и все листы скопировать в него. Этот новый сохранить под неким именем (в нем уже запроса не будет) и в дальнейшем работать только с ним. А макросы этого файла вы увидеть можете?
0 |
148 / 35 / 6 Регистрация: 01.11.2013 Сообщений: 779 |
|
10.07.2020, 06:50 [ТС] |
6 |
Burk, В нем нет макросов. Даже если они там есть, они мне не нужны. Мне нужно периодически брать данные с листов. Эти данные меняются. По-этому в копировании листов нет смысла
0 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
10.07.2020, 07:02 |
7 |
govorun, я хотел узнать, если возможно, откуда приходит этот запрос. Если из модуля Эта книга, то изменить (удалить) этот запрос. Поэтому и хотелось посмотреть есть ли что-то в проекте ВБА. Ведь если выставить Защитить книгу, то такого запроса нет. Файл, по-видимому, не из вашей фирмы?
0 |
148 / 35 / 6 Регистрация: 01.11.2013 Сообщений: 779 |
|
10.07.2020, 07:09 [ТС] |
8 |
не из вашей фирмы Возможно, не знаю.
0 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
10.07.2020, 09:03 |
9 |
govorun, что значит возможно? Ведь если автор файла ваш, то он легко уберет этот запрос. А прислать этот файл вы не можете потому, что он шибко секретный?
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
10.07.2020, 09:11 |
10 |
govorun,
0 |
КостяФедореев Часто онлайн 790 / 529 / 237 Регистрация: 09.01.2017 Сообщений: 1,820 |
||||
10.07.2020, 09:27 |
11 |
|||
Сообщение было отмечено govorun как решение Решениеgovorun, Опробуйте у меня сработало.
1 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
10.07.2020, 09:39 |
12 |
КостяФедореев, это сработает не только у вас, но и у любого другого. Но здесь другой случай, при открытии не своего файла выскакивает этот запрос и, как я подозреваю, доступа к его макросам нет. По-видимому этот запрос в Эта книга открываемого (чужого) файла. А автор — партизан и приходится из него выдавливать информацию.
0 |
Часто онлайн 790 / 529 / 237 Регистрация: 09.01.2017 Сообщений: 1,820 |
|
10.07.2020, 09:48 |
13 |
Burk, Я защитил книгу на другом компе с другим пользователем также, как и у govorun, и переслал себе. Своим макросом открыл эту книгу и запроса не было.
0 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
10.07.2020, 09:57 |
14 |
КостяФедореев, надо было ещё любой запрос поставить в Эта книга в файле на другом компе (a=Msgbox….) и посмотреть будет ли этот запрос.
0 |
148 / 35 / 6 Регистрация: 01.11.2013 Сообщений: 779 |
|
10.07.2020, 19:18 [ТС] |
15 |
amd48, КостяФедореев, ReadOnly сработало. Спасибо
0 |
Содержание
- Объект FileSystemObject
- 1. Создание объекта
- 2. Свойства
- 2.1. Drives
- 3. Методы
- 3.1. CreateFolder
- 3.2. CopyFile
- 3.3. CopyFolder
- 3.4. MoveFile
- 3.5. MoveFolder
- 3.6. DeleteFile
- 3.7. DeleteFolder
- 3.8. BuildPath
- 3.9. GetAbsolutePathName
- 3.10. GetBaseName
- 3.11. GetExtensionName
- 3.12. GetFileName
- 3.13. GetParentFolderName
- 3.14. GetDriveName
- 3.15. DriveExists
- 3.16. FileExists
- 3.17. FolderExists
- 3.18. GetDrive
- 3.19. GetFile
- 3.20. GetFolder
- 3.21. GetSpecialFolder
- 3.22. GetTempName
- 3.23. CreateTextFile
- 3.24. OpenTextFile
- 3.25. GetStandardStream
- 3.26. GetFileVersion
- 4. Объект Drive
- 4.1. Создание объекта
- 4.2. Свойства
- 4.2.1. AvailableSpace
- 4.2.2. DriveLetter
- 4.2.3. DriveType
- 4.2.4. FileSystem
- 4.2.5. FreeSpace
- 4.2.6. IsReady
- 4.2.7. Path
- 4.2.8. RootFolder
- 4.2.9. SerialNumber
- 4.2.10. ShareName
- 4.2.11. TotalSize
- 4.2.12. VolumeName
- 5. Объект File
- 5.1. Создание объекта
- 5.2. Свойства
- 5.2.1. Attributes
- 5.2.2. DateCreated
- 5.2.3. DateLastAccessed
- 5.2.4. DateLastModified
- 5.2.5. Drive
- 5.2.6. Name
- 5.2.7. ParentFolder
- 5.2.8. Path
- 5.2.9. ShortName
- 5.2.10. ShortPath
- 5.2.11. Size
- 5.2.12. Type
- 5.3. Методы
- 5.3.1. Copy
- 5.3.2. Move
- 5.3.3. Delete
- 5.3.4. OpenAsTextStream
- 6. Объект Folder
- 6.1. Создание объекта
- 6.2. Свойства
- 6.2.1. Attributes
- 6.2.2. DateCreated
- 6.2.3. DateLastAccessed
- 6.2.4. DateLastModified
- 6.2.5. Drive
- 6.2.6. IsRootFolder
- 6.2.7. Name
- 6.2.8. ParentFolder
- 6.2.9. Path
- 6.2.10. ShortName
- 6.2.11. ShortPath
- 6.2.12. Size
- 6.2.13. Type
- 6.2.14. SubFolders
- 6.2.15. Files
- 6.3. Методы
- 6.3.1. Copy
- 6.3.2. Move
- 6.3.3. Delete
- 6.3.4. CreateTextFile
- 7. Объект TextStream
- 7.1. Создание объекта
- 7.2. Свойства
- 7.2.1. AtEndOfLine
- 7.2.2. AtEndOfStream
- 7.2.3. Column
- 7.2.4. Line
- 7.3. Методы
- 7.3.1. Close
- 7.3.2. Read
- 7.3.3. ReadAll
- 7.3.4. ReadLine
- 7.3.5. Skip
- 7.3.6. SkipLine
- 7.3.7. Write
- 7.3.8. WriteLine
- 7.3.9. WriteBlankLines
Объект FileSystemObject
Ниже приведен справочник по объекту FileSystemObject, который умеет работать с файлами, каталогами, файловыми потоками. Данный объект позволяет читать файлы, писать в файлы, получать информацию о файлах и др. Данный объект используется в ОС Windows, в некоторых скриптовых языках.
1. Создание объекта 2. Свойства 2.1. Drives 3. Методы 3.1. CreateFolder 3.2. CopyFile 3.3. CopyFolder 3.4. MoveFile 3.5. MoveFolder 3.6. DeleteFile 3.7. DeleteFolder 3.8. BuildPath 3.9. GetAbsolutePathName 3.10. GetBaseName 3.11. GetExtensionName 3.12. GetFileName 3.13. GetParentFolderName 3.14. GetDriveName 3.15. DriveExists 3.16. FileExists 3.17. FolderExists 3.18. GetDrive 3.19. GetFile 3.20. GetFolder 3.21. GetSpecialFolder 3.22. GetTempName 3.23. CreateTextFile 3.24. OpenTextFile 3.25. GetStandardStream 3.26. GetFileVersion 4. Объект Drive 4.1. Создание объекта 4.2. Свойства 4.2.1. AvailableSpace 4.2.2. DriveLetter 4.2.3. DriveType 4.2.4. FileSystem 4.2.5. FreeSpace 4.2.6. IsReady 4.2.7. Path 4.2.8. RootFolder 4.2.9. SerialNumber 4.2.10. ShareName 4.2.11. TotalSize 4.2.12. VolumeName 5. Объект File 5.1. Создание объекта 5.2. Свойства 5.2.1. Attributes 5.2.2. DateCreated 5.2.3. DateLastAccessed 5.2.4. DateLastModified 5.2.5. Drive 5.2.6. Name 5.2.7. ParentFolder 5.2.8. Path 5.2.9. ShortName 5.2.10. ShortPath 5.2.11. Size 5.2.12. Type 5.3. Методы 5.3.1. Copy 5.3.2. Move 5.3.3. Delete 5.3.4. OpenAsTextStream 6. Объект Folder 6.1. Создание объекта 6.2. Свойства 6.2.1. Attributes 6.2.2. DateCreated 6.2.3. DateLastAccessed 6.2.4. DateLastModified 6.2.5. Drive 6.2.6. IsRootFolder 6.2.7. Name 6.2.8. ParentFolder 6.2.9. Path 6.2.10. ShortName 6.2.11. ShortPath 6.2.12. Size 6.2.13. Type 6.2.14. SubFolders 6.2.15. Files 6.3. Методы 6.3.1. Copy 6.3.2. Move 6.3.3. Delete 6.3.4. CreateTextFile 7. Объект TextStream 7.1. Создание объекта 7.2. Свойства 7.2.1. AtEndOfLine 7.2.2. AtEndOfStream 7.2.3. Column 7.2.4. Line 7.3. Методы 7.3.1. Close 7.3.2. Read 7.3.3. ReadAll 7.3.4. ReadLine 7.3.5. Skip 7.3.6. SkipLine 7.3.7. Write 7.3.8. WriteLine 7.3.9. WriteBlankLines
1. Создание объекта
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
2. Свойства
2.1. Drives
Синтаксис:
Drives
Возвращаемое значение: объект-коллекция «Drives».
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") For Each Drive In FSO.Drives MsgBox Drive.DriveLetter Next
Другой пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Drives = FSO.Drives MsgBox "Всего дисков - " & Drives.Count Set DriveC = Drives.Item("C:") MsgBox "Диск C: имеет метку " & DriveC.VolumeName
3. Методы
3.1. CreateFolder
Синтаксис:
CreateFolder(<Foldername>)
Назначение: создаёт каталог с указанным именем.
Параметры:
- <Foldername> — строка, путь к каталогу. Если такой каталог уже существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CreateFolder "C:New Folder"
3.2. CopyFile
Синтаксис:
CopyFile(<Source>,<Destination>,<Overwrite>)
Назначение: копирует один или несколько файлов.
Параметры:
- <Source> — строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы «*» и «?».
- <Destination> — строка, путь назначения (куда копировать).
- <Overwrite> — необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию — True (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile "C:*.bat", "A:", 0
3.3. CopyFolder
Синтаксис:
CopyFolder(<Source>,<Destination>,<Overwrite>)
Назначение: рекурсивно копирует каталог.
Параметры:
- <Source> — строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы «*» и «?».
- <Destination> — строка, путь назначения (куда копировать).
- <Overwrite> — необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию — True (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).
Описание: процесс копирования прерывается после первой возникшей ошибки.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFolder "C:NewFolder*", "C:TEMP", 0
3.4. MoveFile
Синтаксис:
MoveFile(<Source>,<Destination>)
Назначение: перемещает один или несколько файлов.
Параметры:
- <Source> — строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы «*» и «?».
- <Destination> — строка, путь назначения (куда копировать).
Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый файл уже существует или является папкой в Destination, возникнет ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.MoveFile "C:*.txt", "A:"
3.5. MoveFolder
Синтаксис:
MoveFolder(<Source>,<Destination>)
Назначение: рекурсивно перемещает один или несколько каталогов.
Параметры:
- <Source> — строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы «*» и «?».
- <Destination> — строка, путь назначения (куда копировать).
Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый каталог уже существует или является файлом в Destination, возникнет ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.MoveFolder "C:New Folde*", "C:TEMP"
3.6. DeleteFile
Синтаксис:
DeleteFile(<Filespec>,<Force>)
Назначение: удаляет указанный файл.
Параметры:
- <Filespec> — строка, путь к файлу. В последнем компоненте параметра можно использовать групповые символы «*» и «?».
- <Force> — необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию — False (не удалять).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.DeleteFile "A:*", 0
3.7. DeleteFolder
Синтаксис:
DeleteFolder(<Folderspec>,<Force>)
Назначение: удаляет указанную папку.
Параметры:
- <Folderspec> — строка, путь к папке. В последнем компоненте параметра можно использовать групповые символы «*» и «?».
- <Force> — необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию — False (не удалять).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") FSO.DeleteFolder "A:*", 0
3.8. BuildPath
Синтаксис:
BuildPath(<Path>,<Name>)
Назначение: добавляет к заданному пути новое имя. Если необходимо, вставляется «».
Параметры:
- <Path> — строка, путь.
- <Name> — строка, имя файла.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Path = FSO.BuildPath("C:Program Files", "New Folder") MsgBox Path Path = FSO.BuildPath("C:Program Files", "New Folder") MsgBox Path
3.9. GetAbsolutePathName
Синтаксис:
GetAbsolutePathName(<Pathspec>)
Назначение: возвращает полный путь для заданного относительного пути (из текущего каталога).
Параметры:
- <Pathspec> — строка, относительный путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Path = FSO.GetAbsolutePathName("..") MsgBox Path Path = FSO.GetAbsolutePathName(".aaabbbccc.txt") MsgBox Path
3.10. GetBaseName
Синтаксис:
GetBaseName(<Path>)
Назначение: возвращает имя (без расширения) последнего компонента в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetBaseName("Q:aaabredMySuperFile.txt") MsgBox Name
3.11. GetExtensionName
Синтаксис:
GetExtensionName(<Path>)
Назначение: возвращает расширение последнего компонента в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetExtensionName("Q:aaabredMySuperFile.txt") MsgBox Name
3.12. GetFileName
Синтаксис:
GetFileName(<Path>)
Назначение: возвращает имя (с расширением) последнего компонента в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetFileName("Q:aaabredMySuperFile.txt") MsgBox Name
3.13. GetParentFolderName
Синтаксис:
GetParentFolderName(<Path>)
Назначение: возвращает путь к последнему компоненту в заданном пути (его каталог).
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetParentFolderName("Q:aaabredMySuperFile.txt") MsgBox Name
3.14. GetDriveName
Синтаксис:
GetDriveName(<Path>)
Назначение: возвращает имя диска в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetDriveName("X:aaabredMySuperFile.txt") MsgBox Name
3.15. DriveExists
Синтаксис:
DriveExists(<Drivespec>)
Назначение: возвращает True, если указанный диск сущесвтвует, и False в противном случае.
Параметры:
- <Drivespec> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Disk = "A:" MsgBox "Диск " & Disk & " существует = " & FSO.DriveExists(Disk) Disk = "Q:" MsgBox "Диск " & Disk & " существует = " & FSO.DriveExists(Disk)
3.16. FileExists
Синтаксис:
FileExists(<Filespec>)
Назначение: возвращает True, если указанный файл сущесвтвует, и False в противном случае.
Параметры:
- <Filespec> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") File = "C:Program Files1Cv77BIN1cv7s.exe" MsgBox "Файл " & File & " существует = " & FSO.FileExists(File) File = "С:1.txt" MsgBox "Файл " & File & " существует = " & FSO.FileExists(File)
3.17. FolderExists
Синтаксис:
FolderExists(<Folderspec>)
Назначение: возвращает True, если указанный каталог сущесвтвует, и False в противном случае.
Параметры:
- <Folderspec> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Folder = "C:Program Files" MsgBox "Каталог " & Folder & " существует = " & FSO.FolderExists(Folder) Folder = "С:ProgramFiles" MsgBox "Каталог " & Folder & " существует = " & FSO.FolderExists(Folder)
3.18. GetDrive
Синтаксис:
GetDrive(<Folderspec>)
Назначение: возвращает объект «Drive» по указанному имени или пути.
Параметры:
- <Folderspec> — строка, имя диска или путь к корневому каталогу диска, возможно UNC-путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Drive = FSO.GetDrive("C:") MsgBox Drive.FileSystem Set Drive = FSO.GetDrive("C:") MsgBox Drive.FileSystem Set Drive = FSO.GetDrive("\Server1C_Predpr") MsgBox Drive.FileSystem
3.19. GetFile
Синтаксис:
GetFile(<Filespec>)
Назначение: возвращает объект «File» по указанному пути.
Параметры:
- <Filespec> — строка, путь.
Описание: если файл не существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") MsgBox File.Size
3.20. GetFolder
Синтаксис:
GetFolder(<Folderspec>)
Назначение: возвращает объект «Folder» по указанному пути.
Параметры:
- <Folderspec> — строка, путь.
Описание: если каталог не существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") MsgBox Folder.ShortName
3.21. GetSpecialFolder
Синтаксис:
GetSpecialFolder(<Folderspec>)
Назначение: возвращает объект «Folder» для некоторых специальных папок Windows.
Параметры:
- <Folderspec> — число, определяет специальную папку. Возможные значения:
- 0 — Каталог Windows.
- 1 — Системный каталог библиотек и драйверов.
- 2 — Каталог временных файлов, путь к которому хранится в переменной среды «TMP».
Описание: если каталог не существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") For i=0 To 2 Set Folder = FSO.GetSpecialFolder(i) MsgBox Folder.Path Next
3.22. GetTempName
Синтаксис:
GetTempName()
Назначение: возвращает случайным образом сгенерированное имя файла, которое может быть использовано для создания временного файла.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") MsgBox FSO.GetTempName()
3.23. CreateTextFile
Синтаксис:
CreateTextFile(<Filename>,<Overwrite>,<Unicode>)
Назначение: создаёт новый текстовый файл и возвращает объект «TextStream», указывающий на него.
Параметры:
- <Filename> — строка, путь к файлу.
- <Overwrite> — необязательный, булево (число). Перезаписывать файл, если он существует (True), или нет (False). По умолчанию — False. Если указано False и файл существует — произойдёт ошибка.
- <Unicode> — необязательный, булево (число). Файл в формате Unicode (True), или ASCII (False). По умолчанию — False.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt")
3.24. OpenTextFile
Синтаксис:
OpenTextFile(<Filename>,<Iomode>,<Create>,<Format>)
Назначение: открывает текстовый файл и возвращает объект «TextStream», указывающий на него.
Параметры:
- <Filename> — строка, путь к файлу.
- <Iomode> — необязательный, число. Возможные значения:
- 1 — Открыть файл только для чтения.
- 2 — Открыть файл для записи. Если файл уже существовал, его содержимое теряется.
- 8 — Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.
- <Create> — необязательный, булево (число). Создавать файл, если он не существует (True), или нет (False). По умолчанию — False.
- <Format> — необязательный, число. Возможные значения:
- -2 — Открыть файл в формате, используемом системой по умолчанию.
- -1 — Открыть файл в формате Unicode.
- 0 — Открыть файл в формате ASCII (по умолчанию).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.OpenTextFile("C:Test.txt", 2, True)
3.25. GetStandardStream
Синтаксис:
GetStandardStream(<StandardStreamType>,<Unicode>)
Назначение: возвращает объект «TextStream», ассоциированный с потоком «StdIn», «StdOut» или «StdErr».
Параметры:
- <StandardStreamType> — число, определяет поток. Возможные значения:
- 0 — StdIn.
- 1 — StdOut.
- 2 — StdErr.
- <Unicode> — необязательный, булево (число). True — формат Unicode, False — ASCII. По умолчанию — False.
Описание: метод применим при запуске административного скрипта в консоли с помощью CScript.exe.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set stdout = fso.GetStandardStream(1) stdout.WriteLine "Hello, VBScript."
3.26. GetFileVersion
Синтаксис:
GetFileVersion(<Path>)
Назначение: возвращает номер версии исполняемого файла (строка).
Параметры:
- <Path> — строка, путь к файлу.
Описание: метод возвращает информацию, которую можно просмотреть на вкладке «Версия» палитры свойств файла в проводнике.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") MsgBox FSO.GetFileVersion("C:Program Files1Cv77BIN1cv7s.exe") MsgBox FSO.GetFileVersion("C:Program Files1cv8bin1cv8.exe")
4. Объект Drive
4.1. Создание объекта
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.Drives.Item("C:")
4.2. Свойства
4.2.1. AvailableSpace
Синтаксис:
AvailableSpace
Возвращаемое значение: число — количество доступного для пользователя места на диске в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.2. DriveLetter
Синтаксис:
DriveLetter
Возвращаемое значение: строка — буква, ассоциированная с ресурсом.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.3. DriveType
Синтаксис:
DriveType
Возвращаемое значение: число — определяет тип ресурса. Возможные значения:
- 0 — неизвестное устройство.
- 1 — устройство со сменным носителем.
- 2 — жёсткий диск.
- 3 — сетевой диск.
- 4 — CD-ROM.
- 5 — RAM-диск.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.4. FileSystem
Синтаксис:
FileSystem
Возвращаемое значение: cтрока — тип файловой системы (FAT, NTFS или CDFS).
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.5. FreeSpace
Синтаксис:
FreeSpace
Возвращаемое значение: число — количество свободного места на диске в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.6. IsReady
Синтаксис:
IsReady
Возвращаемое значение: булево (число) — True, если устройство готово, иначе — False. Актуально для устройства со сменным носителем или CD-ROM.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.7. Path
Синтаксис:
Path
Возвращаемое значение: строка — путь к диску (например, «C:», но не «C:»).
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.8. RootFolder
Синтаксис:
RootFolder
Возвращаемое значение: объект «Folder», соответствующий корневому каталогу диска.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.9. SerialNumber
Синтаксис:
SerialNumber
Возвращаемое значение: число — десятичный серийный номер диска.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
Синтаксис:
ShareName
Возвращаемое значение: строка — сетевое имя диска, если диск сетевой (иначе — пустая строка).
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.11. TotalSize
Синтаксис:
TotalSize
Возвращаемое значение: число — общий объём диска в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.12. VolumeName
Синтаксис:
VolumeName
Возвращаемое значение: строка — метка тома диска.
Замечание: чтение и запись.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
5. Объект File
5.1. Создание объекта
Пример №1:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat")
Пример №2:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set File = Folder.Files("autoexec.bat")
Пример №3:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set File = Folder.Files.Item("autoexec.bat")
5.2. Свойства
5.2.1. Attributes
Синтаксис:
Attributes
Возвращаемое значение: число, набор флагов атрибутов файла. Флаги:
- 0 — Normal. Обычный файл (нет атрибутов).
- 1 — ReadOnly. Файл только для чтения. Чтение и запись.
- 2 — Hidden. Скрытый. Чтение и запись.
- 4 — System. Системный. Чтение и запись.
- 8 — Volume. Диск. Только чтение.
- 16 — Directory. Папка или файл. Только чтение.
- 32 — Archive. Архивный. Чтение и запись.
- 1024 — Alias. Ссылка или ярлык. Только чтение.
- 2048 — Compressed. Сжатый. Только чтение.
Замечание: чтение и запись или только чтение, в зависимости от атрибута.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Attrs = File.Attributes Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "ReadOnly", 0 Dict.Add "Hidden", 0 Dict.Add "System", 0 Dict.Add "Volume", 0 Dict.Add "Directory", 0 Dict.Add "Archive", 0 Dict.Add "Alias", 0 Dict.Add "Compressed", 0 If Attrs And 2048 Then Dict.Item("Compressed") = 1 End If If Attrs And 1024 Then Dict.Item("Alias") = 1 End If If Attrs And 32 Then Dict.Item("Archive") = 1 End If If Attrs And 16 Then Dict.Item("Directory") = 1 End If If Attrs And 8 Then Dict.Item("Volume") = 1 End If If Attrs And 4 Then Dict.Item("System") = 1 End If If Attrs And 2 Then Dict.Item("Hidden") = 1 End If If Attrs And 1 Then Dict.Item("ReadOnly") = 1 End If Str = "Атрибуты файла """ & File.Path & """:" & vbCrLf For Each Attr In Dict Str = Str & Attr & " = " & Dict.Item(Attr) & vbCrLf Next MsgBox Str
5.2.2. DateCreated
Синтаксис:
DateCreated
Возвращаемое значение: дата создания файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.3. DateLastAccessed
Синтаксис:
DateLastAccessed
Возвращаемое значение: дата последнего доступа к файлу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.4. DateLastModified
Синтаксис:
DateLastModified
Возвращаемое значение: дата последней модификации файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.5. Drive
Синтаксис:
Drive
Возвращаемое значение: объект «Drive» диска, на котором находится файл.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.6. Name
Синтаксис:
Name
Возвращаемое значение: имя файла.
Замечание: чтение и запись.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.7. ParentFolder
Синтаксис:
ParentFolder
Возвращаемое значение: объект «Folder» родительского каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.8. Path
Синтаксис:
Path
Возвращаемое значение: полный путь к файлу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.9. ShortName
Синтаксис:
ShortName
Возвращаемое значение: короткое имя файла в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.10. ShortPath
Синтаксис:
ShortPath
Возвращаемое значение: короткий путь к файлу в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.11. Size
Синтаксис:
Size
Возвращаемое значение: размер файла в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.12. Type
Синтаксис:
Type
Возвращаемое значение: тип файла. Информация, похожая на ту, которую можно увидеть в палитре свойств файла в проводнике.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.3. Методы
5.3.1. Copy
Синтаксис:
Copy(<Destination>,<Overwrite>)
Назначение: копирует файл в указанное место.
Параметры:
- <Destination> — строка, путь (куда копировать).
- <Overwrite> — необязательный, булево (число). Заменять файл, если он существует (True), или нет (False)
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") File.Copy "D:" File.Copy "D:Copy of autoexec.bat"
5.3.2. Move
Синтаксис:
Move(<Destination>)
Назначение: перемещает файл в указанное место.
Параметры:
- <Destination> — строка, путь (куда перемещать).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") File.Move "D:" 'File.Move "D:Copy of autoexec.bat"
5.3.3. Delete
Синтаксис:
Delete(<Force>)
Назначение: удаляет файл.
Параметры:
- <Force> — необязательный, булево (число). Удалять файл, если он имеет атрибут «только для чтения» (True), или нет (False).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:Test.txt") File.Delete
5.3.4. OpenAsTextStream
Синтаксис:
OpenAsTextStream(<Iomode>,<Format>)
Назначение: открывает текстовый файл и возвращает объект «TextStream», указывающий на него.
Параметры:
- <Iomode> — необязательный, число. Возможные значения:
- 1 — Открыть файл только для чтения.
- 2 — Открыть файл для записи. Если файл уже существовал, его содержимое теряется.
- 8 — Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.
- <Format> — необязательный, число. Возможные значения:
- -2 — Открыть файл в формате, используемом системой по умолчанию.
- -1 — Открыть файл в формате Unicode.
- 0 — Открыть файл в формате ASCII (по умолчанию).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadAll() TextStream.Close
6. Объект Folder
6.1. Создание объекта
Пример №1:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files")
Пример №2:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetSpecialFolder(0)
Пример №3:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Set Folder = DriveC.RootFolder
Пример №4:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") For Each SubFolder In Folder.SubFolders WScript.Echo SubFolder.Name Next
6.2. Свойства
6.2.1. Attributes
Синтаксис:
Attributes
Возвращаемое значение: число, набор флагов атрибутов папки. Флаги:
- 0 — Normal. Обычный файл (нет атрибутов).
- 1 — ReadOnly. Файл только для чтения. Чтение и запись.
- 2 — Hidden. Скрытый. Чтение и запись.
- 4 — System. Системный. Чтение и запись.
- 8 — Volume. Диск. Только чтение.
- 16 — Directory. Папка или файл. Только чтение.
- 32 — Archive. Архивный. Чтение и запись.
- 1024 — Alias. Ссылка или ярлык. Только чтение.
- 2048 — Compressed. Сжатый. Только чтение.
Замечание: чтение и запись или только чтение, в зависимости от атрибута.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Attrs = Folder.Attributes Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "ReadOnly", 0 Dict.Add "Hidden", 0 Dict.Add "System", 0 Dict.Add "Volume", 0 Dict.Add "Directory", 0 Dict.Add "Archive", 0 Dict.Add "Alias", 0 Dict.Add "Compressed", 0 If Attrs And 2048 Then Dict.Item("Compressed") = 1 End If If Attrs And 1024 Then Dict.Item("Alias") = 1 End If If Attrs And 32 Then Dict.Item("Archive") = 1 End If If Attrs And 16 Then Dict.Item("Directory") = 1 End If If Attrs And 8 Then Dict.Item("Volume") = 1 End If If Attrs And 4 Then Dict.Item("System") = 1 End If If Attrs And 2 Then Dict.Item("Hidden") = 1 End If If Attrs And 1 Then Dict.Item("ReadOnly") = 1 End If Str = "Атрибуты папки """ & Folder.Path & """:" & vbCrLf For Each Attr In Dict Str = Str & Attr & " = " & Dict.Item(Attr) & vbCrLf Next MsgBox Str
6.2.2. DateCreated
Синтаксис:
DateCreated
Возвращаемое значение: дата создания каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.3. DateLastAccessed
Синтаксис:
DateLastAccessed
Возвращаемое значение: дата последнего доступа к каталогу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.4. DateLastModified
Синтаксис:
DateLastModified
Возвращаемое значение: дата последней модификации каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.5. Drive
Синтаксис:
Drive
Возвращаемое значение: объект «Drive» диска, на котором находится каталог.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.6. IsRootFolder
Синтаксис:
IsRootFolder
Возвращаемое значение: булево (число). Признак того, является ли каталог корневым.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.7. Name
Синтаксис:
Name
Возвращаемое значение: имя каталога.
Замечание: чтение и запись.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.8. ParentFolder
Синтаксис:
ParentFolder
Возвращаемое значение: объект «Folder» родительского каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.9. Path
Синтаксис:
Path
Возвращаемое значение: полный путь к каталогу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.10. ShortName
Синтаксис:
ShortName
Возвращаемое значение: короткое имя каталога в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.11. ShortPath
Синтаксис:
ShortPath
Возвращаемое значение: короткий путь к каталогу в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.12. Size
Синтаксис:
Size
Возвращаемое значение: размер всех файлов и подкаталогов, входящих в данный каталог, в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.13. Type
Синтаксис:
Type
Возвращаемое значение: тип каталога. Информация, похожая на ту, которую можно увидеть в палитре свойств каталога в проводнике.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.14. SubFolders
Синтаксис:
SubFolders
Возвращаемое значение: объект-коллекция «Folders», содержащая все подкаталоги данного каталога, включая скрытые и системные.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") MsgBox Folder.SubFolders.Count Set SubFolder = Folder.SubFolders.Item("Program Files") MsgBox SubFolder.Path Set SubFolder = Folder.SubFolders("Program Files") MsgBox SubFolder.Path
Другой пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") For Each SubFolder In Folder.SubFolders WScript.Echo SubFolder.Name Next
Создание нового подкаталога:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set NewFolder = Folder.SubFolders.Add("New Folder")
6.2.15. Files
Синтаксис:
Files
Возвращаемое значение: объект-коллекция «Files», содержащая все файлы данного каталога, включая скрытые и системные.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") MsgBox Folder.Files.Count Set File = Folder.Files.Item("AUTOEXEC.BAT") MsgBox File.Path Set File = Folder.Files("AUTOEXEC.BAT") MsgBox File.Path
Другой пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") For Each File In Folder.Files WScript.Echo File.Name Next
6.3. Методы
6.3.1. Copy
Синтаксис:
Copy(<Destination>,<Overwrite>)
Назначение: копирует каталог в указанное место.
Параметры:
- <Destination> — строка, путь (куда копировать).
- <Overwrite> — необязательный, булево (число). Заменять каталог, если он существует (True), или нет (False).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("D:JobSite") Folder.Copy "D:"
6.3.2. Move
Синтаксис:
Move(<Destination>)
Назначение: перемещает каталог в указанное место.
Параметры:
- <Destination> — строка, путь (куда перемещать).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("D:JobSite") Folder.Move "D:"
6.3.3. Delete
Синтаксис:
Delete(<Force>)
Назначение: удаляет каталог со всем содержимым.
Параметры:
- <Force> — необязательный, булево (число). Удалять каталог, если он имеет атрибут «только для чтения» (True), или нет (False).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:New Folder") Folder.Delete
6.3.4. CreateTextFile
Синтаксис:
CreateTextFile(<Filename>,<Overwrite>,<Unicode>)
Назначение: создаёт новый текстовый файл и возвращает объект «TextStream», указывающий на него.
Параметры:
- <Filename> — строка, имя файла.
- <Overwrite> — необязательный, булево (число). Перезаписывать файл, если он существует (True), или нет (False). По умолчанию — False. Если указано False и файл существует — произойдёт ошибка.
- <Unicode> — необязательный, булево (число). Файл в формате Unicode (True), или ASCII (False). По умолчанию — False.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set TextStream = Folder.CreateTextFile("Test.txt")
7. Объект TextStream
7.1. Создание объекта
Пример №1:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt")
Пример №2:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set TextStream = Folder.CreateTextFile("Test.txt")
Пример №3:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.OpenTextFile("C:autoexec.bat")
Пример №4:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Set TextStream = File.OpenAsTextStream(1)
7.2. Свойства
7.2.1. AtEndOfLine
Синтаксис:
AtEndOfLine
Возвращаемое значение: содержит True, если указатель достиг конца строки и False в противном случае. Работает только если файл открыт для чтения.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfLine Str = Str & TextStream.Read(1) Wend TextStream.Close MsgBox Str
7.2.2. AtEndOfStream
Синтаксис:
AtEndOfStream
Возвращаемое значение: содержит True, если указатель достиг конца файла и False в противном случае. Работает только если файл открыт для чтения.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfStream Str = Str & TextStream.ReadLine() & vbCrLf Wend TextStream.Close MsgBox Str
7.2.3. Column
Синтаксис:
Column
Возвращаемое значение: содержит номер колонки текущего символа файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfLine Str = Str & TextStream.Column & ": " & TextStream.Read(1) & vbCrLf Wend TextStream.Close MsgBox Str
7.2.4. Line
Синтаксис:
Line
Возвращаемое значение: содержит номер текущей строки файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfStream Str = Str & TextStream.Line & ": " & TextStream.ReadLine() & vbCrLf Wend TextStream.Close MsgBox Str
7.3. Методы
7.3.1. Close
Синтаксис:
Close
Назначение: закрывает открытый файл.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadAll() TextStream.Close
7.3.2. Read
Синтаксис:
Read(<Characters>)
Назначение: считывает из файла указанное количество символов и возвращает полученную строку.
Параметры:
- <Characters> — число, количество символов, которое нужно считать.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.Read(13) TextStream.Close
7.3.3. ReadAll
Синтаксис:
ReadAll
Назначение: считывает весь файл и возвращает полученную строку.
Параметры: нет.
Описание: для больших файлов использование этого метода потребует больших ресурсов памяти.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadAll() TextStream.Close
7.3.4. ReadLine
Синтаксис:
ReadLine
Назначение: считывает строку из файла и возвращает полученную строку.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfStream Str = Str & TextStream.ReadLine() & vbCrLf Wend MsgBox Str TextStream.Close
7.3.5. Skip
Синтаксис:
Skip(<Characters>)
Назначение: пропускает при чтении файла указанное количество символов.
Параметры:
- <Characters> — число, количество символов, которые нужно пропустить.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.Read(13) TextStream.Skip 10 MsgBox TextStream.Read(10) TextStream.Close
7.3.6. SkipLine
Синтаксис:
SkipLine
Назначение: пропускает при чтении файла строку.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadLine() TextStream.SkipLine MsgBox TextStream.ReadLine() TextStream.Close
7.3.7. Write
Синтаксис:
Write(<String>)
Назначение: записывает в файл указанную строку. Символы возврата каретки и новой строки в файл не записываются.
Параметры:
- <String> — строка для записи в файл.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt") TextStream.Write("Text") TextStream.Close
7.3.8. WriteLine
Синтаксис:
WriteLine(<String>)
Назначение: записывает в файл указанную строку. В файл записываются символы возврата каретки и новой строки.
Параметры:
- <String> — необязательный, строка для записи в файл. Если опущен, в файл записывается пустая строка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt") TextStream.WriteLine "Text" TextStream.Close
7.3.9. WriteBlankLines
Синтаксис:
WriteBlankLines(<Lines>)
Назначение: записывает в файл указанное количество пустых строк (символы возврата каретки и новой строки).
Параметры:
- <Lines> — число, количество пустых строк, которое надо записать.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt") TextStream.WriteBlankLines 5 TextStream.Close