On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

HTML Приложения

Зачем использовать HTA?


Microsoft Internet Explorer 5, являясь жизнеспособной платформой разработок на базе Microsoft Windows, предоставляет возможность создавать HTML приложения. HTA являются полноценными приложениями. Эти приложения вполне надежны, они отображают только меню, иконки, панели инструментов, и заголовочную информацию, создаваемые Web-разработчиком.Говоря вкратце, HTA объединяют в себе всю мощь Internet Explorer - его объектную модель, производительность, мощь рендеринга, поддержку протоколов, и технологию загрузки каналов - все это без нарушения строгой модели безопасности и пользовательского интерфейса броузера.

Исторически, языки программирования типа C++ и MicrosoftR Visual Basic предоставляли объектные модели и доступ к ресурсам системы, в которых нуждаются разработчики. С появлением HTA пришло время добавить динамический HTML (DHTML) со скриптами к этому списку. HTA не только поддерживают все средства, поддерживаемые Web страницами а именно HTML, каскадные листы стилей (CSS), скрипты и события, но также специфическую функциональность HTA. Добавление этой функциональности обеспечивает контроль над разработкой пользовательского интерфейса и доступ к пользовательской системе. Более того, будучи выполняемым как доверительное приложение, HTA не является объектом для ограничений безопасности, накладываемых на Web страницы. Как и при запуске любого выполнимого файла, перед загрузкой HTA пользователя спрашивают только раз, сохранить приложение или выполнить. Будучи сохраненным в пользовательской системе, файл может быть выполнен по желанию пользователя в любое другое время. Конечным результатом является то, что HTA выполняется также, как и любой выполнимый файл (.exe), написанный на C++ или Visual Basic.

HTA подходят для различных применений, пишите ли вы прототипы, создаете волшебники (wizards), или создаете полноценные приложения. Все, что в данный момент предоставляют DHTML и скрипты: формы, мультимедиа, Web приложения, HTML редакторы, и броузеры - доступно для HTA...и еще кое-что. Но самое лучшее то, что HTA упрощают многие задачи. Простота создания прототипов ,используя HTA, делает возможным для менеджеров ПО и дизайнеров писать сценарии для диалоговых окон и предупреждений, в то время как разработчики на C++ или Visual Basic программируют основную функциональность.

Создание HTA


Создайте HTA написав HTML страницу и сохранив ее с расширением .hta .

Этот пример демонстрирует наипростейший возможный HTA. Он состоит из строки "Hello, World", и сохраняется с расширением .hta . Internet Explorer настолько всепрощающий, что даже отсутствие тэгов HTML и BODY не вызывает ошибки. Программа может быть закрыта нажатием ALT+F4. Это свойство требует наличия MicrosoftR Internet Explorer 4.0 или более поздней версии.

Для запуска HTA требуется либо дважды щелкнуть левой клавишей мыши на его иконке, либо выполнить его из меню ПУСК, либо открыть его через URL, либо запустить его из командной строки. Будучи запущенным, HTA интерпретирует все, что находится внутри тэга BODY и отображает значение тэга TITLE как заголовок окна.

Особая функциональность HTA


В то время, как расширение .hta указывает системе как работать с приложением, новый тэг HTA:APPLICATION и аттрибуты указывают окну, как себя вести будучи приложением. Этот тэг предоставляет ограниченный набор аттрибутов, управляющих всем от стиля границы окна и до программной иконки и меню. Большинство аттрибутов доступны только для чтения, их значения по умолчанию оптимизированы для среднего приложения. Для создания функционирующего HTA, этот тэг должен быть описан внутри тэга HEAD.

Тэг HTA:APPLICATION в нижеследующем примере устанавливает свойства приложения, не доступные в DHTML. Согласно запрещениям в аттрибутах, данное приложение не имеет ни границы окна (border), ни заголовка, ни стандартного системного меню. Заголовок приложения появляется только в списке задач Windows, но не в панели задач. При этом разрешено выполнение только одного экземпляра приложения. Будучи запущенным, HTA известен системе как "monster" и его размер устанавливается величиной, необходимой для заполнения всего экрана. Программа может быть закрыта нажатием alt+f4.

  <HEAD>
  <TITLE>My Monster Application</TITLE>
  <HTA:APPLICATION ID="oMyApp" 
    APPLICATIONNAME="monster" 
    BORDER="none"
    CAPTION="no"
    ICON="/graphics/creature.ico"
    SHOWINTASKBAR="no"
    SINGLEINSTANCE="yes"
    SYSMENU="no"
    WINDOWSTATE="maximize">
 </HEAD>

HTA и безопасность


Междоменному написанию скриптов свойственно адресовать риск безопасности, HTA разрешает атрибут APPLICATION для FRAME и IFRAME. Этот оригитнальный HTA атрибут не единственная доступная предосторожность защиты. HTA разработаны таким образом, что FRAME и IFRAME, где атрибут APPLICATION установлен в NO, не имеют доступа скрипта в HTA, который их содержит. Таким образом никакое незащищённое содержимое не допускается в HTA через недоверенное окно.

HTA разработаны таким образом, что недоверенные HTML FRAME и IFRAME не имеют доступа скрипта к HTA, который их содержит. В отношении FRAME, которые не являются разрешёнными для HTA, фрейм высшего уровня содержит главное окно для всех FRAME, содержащихся в нём. Для вышеупомянутого FRAME, window.top и window.self одно и тоже. Кроме того, ненадёжные FRAME и IFRAME не получают ни referrer ни opener  URL из родительского HTA. Конечный результат - они не знают о HTA, содержащемся внутри, как о родительском окне.

В приложениях, где всё содержимое безопасно, FRAME и IFRAME могут быть благополучно помечены как доверенные. Мастера и контрольные панели являются примерами безопасного содержимого. Разрешённый HTA статус IFRAME в нижеуказанном примере позволяет ему передавать информацию обратно в его родительское окно.

<IFRAME SRC="filename.htm" APPLICATION="yes">

В противоположность, IFRAME, который позволяет просмотр незащищённого содержимого, должен быть запущен как обычный HTML. Содержимое в примере IFRAME ниже - подчиняется настройке безопасности для его зоны. Следующий IFRAME может быть использован при внедрении HTML.

<IFRAME SRC="filename.htm" APPLICATION="no">
Запомните,  атрибут APPLICATION игнорируется, если он используется в HTML предпочтительнее, чем HTA.

При выполнении HTA, пользователи должны принимать те же меры предосторожности, как и с любой выполнимой программой: устанавливать только те HTA, которые созданы в надёжных источниках. HTA не могут быть подписаны. Однако они могут быть установлены из отмеченных cabinet-файлов (.cab) или других отмеченных инсталляционных форматов. Так или иначе, наиболее ответственные источники будут корпоративными сетями intranet и признанными поставщиками программного обеспечения.

Совместимость


Реализация HTA фирмой Microsoft ограничена 32-битными системами Windows, выполняющими Internet Explorer 5. HTA не поддерживают свойства или внешний объект HTML AutoComplete в формах .

Реализация HTA


Реализация HTA поддерживает методы многократного размещения: модель сети, модель готовой программы, и модель, составленная из них обеих. Разработчики приложений должны решить как лучше удовлетворить свои распределённые потребности.

Модель Сети


Сетевая модель размещения состоит из приложения, которое может быт запущено и которым можно управлять как обычной Web страницей. По этому сценарию HTA загружается просто просматривая свой URL или с помощью доступа к нему из списка Избранное Internet Explorer. Прежде чем загрузиться, появляется диалоговое окно Internet Explorer и предлагает пользователю выбрать: открыть или сохранить приложение. После загрузки, с сервера по необходимости пересылаются компоненты вспомогательного приложения и потом они помещаются в кэш. Сервера должны иметь тип MIME "application:hta", зарегистрированный для доставки через протокол http: для работы.

Эта модель предоставляет некоторые важные мощности. Это способствует тому, что обновление проходит более гладко: администратору intranet нужно только отправить новый код или содержание клиенту, чтобы получить последнюю версию. Это обеспечивает удобство и лёгкость в использовании: пользователю никогда не нужно устанавливать или удалять приложение. Приложения, которые не используются, автоматически смещаются из кэша. Одно очень важное соображение при оценке этой модели размещения состоит в том, что серверные приложения не могут быть запущены автономно или когда портится сервер. Один вариант состоит в том, чтобы предупредить этот возможный случай при помощи внедрения возможностей дополнительного канала (CDF) в Internet Explorer (начиная с версии 4.0).

Модель готовой программы


В этой модели процесс инсталляции для HTA такой же самый, как и для обычных приложений. Файлы копируются с диска или по сети, используя любую программу установки или самораспаковывающийся исполнимый файл. Программа установки помещает приложение в директорию Program Files или в директорию, выбранную пользователем. Ссылка на HTA включается в меню Пуск. Также регистрируется зависимость приложения от Internet Explorer версии 5 и выше. Тут пользователя предупреждают, что удаление Internet Explorer приведёт к тому, что это приложение станет неработоспособным. Обратитесь к поставщикам сервиса for vehicles для компоновки и поставки HTAs to your specifications.

Как и модель сети, модель готовой программы имеет свои достоинства. Приглашение для пользователя появляется только во время начальной установки; после этого приложение запускается как доверенная программа, как обычный исполнимый(.ехе) файл. Установленное HTA также всегда доступно для пользователей, независимо от того, соединены они с сервером или нет.

Смешанная модель размещения


Допустимо любое сочетание сетевой модели размещения и модели размещения готовой программы. Метод доставки незаметен для HTA. Составные части HTA всегда ссылаются как абсолютные или относительные URL, таким образом приложение работает просто.

Изучите ваши приоритеты


Каковы ваши потребности в распределении? Следующий список представляет несколько сценариев:

  • Если хранение сведений о времени начальной загрузки стоит на первом месте, то установите главное окно HTA на клиентскую машину, оставляя HTA возможность доступа к серверу для связи с картинками и служебным файлам.
  • Если ваши пользователи запускают приложение как на работе, так и удалённо, рассмотрите возможность размещения HTA за пределами локальной сети используя модель сети, и в то же время также распределяя его для удалённого использования используя модель готовой программы.
  • Возможно для вашей деятельности требуется такой сервис, где содержание поддерживается отдельными группами, и распределяется между серверами. Приложение будет выглядеть и функционировать как единое целое, если вы создадите интерфейс одного пользователя и будете использовать сетевое размещение чтобы автоматически передавать самую последнюю информацию.

Справочник по HTML Приложениям


Microsoft Internet Explorer 5 это платформа для разработки HTML Приложений (HTA). Ряд расширений объектной модели (HTA) позволяют разработчику настраивать пользовательский интерфейс приложений.

Следующие ссылки обеспечивают доступ к особой функциональности HTA.

Элементы

HTA:APPLICATION

Свойства

applicationName

border

borderStyle

caption

commandLine

contextMenu

icon

innerBorder

maximizeButton

minimizeButton

navigable

scroll

scrollFlat

selection

showInTaskBar

singleInstance

sysMenu

version

windowState

Смотрите также:


APPLICATION

HTA:APPLICATION элемент | HTA:APPLICATION объект

Активизирует расширенную объектную модель для создания HTML приложений (HTA).

Замечание


Внимание  HTA потенциально способны выполнить на клиентской машине скрипт, написанный со злыми намерениями. HTA, как и файлы .exe имеют доступ чтение/запись к файлам и системному реестру на клиентской машине. Мощные выполнимые файлы могут быть созданы и распространены очень быстро с помощью всего нескольких коротких строк скрипта. Использование HTA не рекомендуется там, где безопасность исходных текстов выполняемых файлов сомнительна.

Вы можете создавать HTA, сохраняя существующие страницы HTML с расширением .hta . Однако, для установки свойств окна приложения, таких как перечисленные в таблице, следует вставить тэг HTA:APPLICATION внутри тэга HEAD

Элемент HTA:APPLICATION требует закрывающего тэга.

<HTA:APPLICATION ... > ... </HTA:APPLICATION>

Так как тэг элемента HTA:APPLICATION является пустым, он также может быть закрыт использую следующий прием.

<HTA:APPLICATION ...  />

Памятка   При использовании вышеуказанного приема, прямому слэшу (/) должен предшествовать пробельный символ.

Атрибут

Свойство

Описание

APPLICATIONNAME

applicationName

Получает имя HTML приложения (HTA).

BORDER

border

Получает тип бордюра окна для HTML приложения (HTA).

BORDERSTYLE

borderStyle

Получает набор стилей бордюра клиентской области внутри окна HTML приложения.

CAPTION

caption

Определяет отображает ли окно панель заголовка, или заголовок для HTML приложения.

COMMANDLINE

commandLine

Получает аргументы, используемые для запуска HTML приложений.

CONTEXTMENU

contextMenu

Устанавливает или определяет, показывается ли контекстное меню по нажатию правой кнопки мыши.

ICON

icon

Получает имя и расположение иконки, указанной в HTML приложении.

INNERBORDER

innerBorder

Устанавливает или определяет отображается ли внутри окна 3-D бордюр.

MAXIMIZEBUTTON

maximizeButton

Определяет отображается ли кнопка максимизирования в заголовке окна HTML приложения.

MINIMIZEBUTTON

minimizeButton

Определяет отображается ли кнопка минимизирования в заголовке окна HTML приложения.

NAVIGABLE

navigable

Устанавливает или определяет, будут ли документы по ссылке загружены в основное окно HTML приложения, или в новое окно броузера.

SCROLL

scroll

Устанавливает или определяет, отображаются ли полосы прокрутки.

SCROLLFLAT

scrollFlat

Устанавливает или определяет, отображаются ли полосы прокрутки в 3-D виде, или плоскими.

SELECTION

selection

Устанавливает или определяет, будет ли содержимое выделяться с помощью мыши или клавиатуры.

SHOWINTASKBAR

showInTaskBar

Определяет будет ли HTML приложение отображаться в панели задач MicrosoftR WindowsR.

SINGLEINSTANCE

singleInstance

Определяет будет ли выполняться только один экземпляр HTML приложения.

SYSMENU

sysMenu

Определяет, отображается ли системное меню в HTML приложении.

VERSION

version

Определяет версию HTML приложения.

WINDOWSTATE

windowState

Устанавливает или определяет первоначальный размер окна HTA.

Пример


<HTML>
<HEAD>
  <TITLE>HTA Demo</TITLE>
    <HTA:APPLICATION ID="oHTA"
     APPLICATIONNAME="myApp"
     BORDER="thin"
     BORDERSTYLE="normal"
     CAPTION="yes"
     ICON=""
     MAXIMIZEBUTTON="yes"
     MINIMIZEBUTTON="yes"
     SHOWINTASKBAR="no"
     SINGLEINSTANCE="no"
     SYSMENU="yes"
     VERSION="1.0"
     WINDOWSTATE="maximize"/>

  <SCRIPT>

  /* Эта функция также получает значения свойства commandLine,
     которое не может устанавливаться, как аттрибут  */
   
  function window.onload()
  {
     sTempStr = "applicationName  = " + oHTA.applicationName + "\n" + 
                "border           = " + oHTA.border          + "\n" +
                "borderStyle      = " + oHTA.borderStyle     + "\n" + 
                "caption          = " + oHTA.caption         + "\n" +
                "commandLine      = " + oHTA.commandLine     + "\n" +
                "icon             = " + oHTA.icon            + "\n" +
                "maximizeButton   = " + oHTA.maximizeButton  + "\n" +
                "minimizeButton   = " + oHTA.minimizeButton  + "\n" + 
                "showInTaskBar    = " + oHTA.showInTaskbar   + "\n" +
                "singleInstance   = " + oHTA.singleInstance  + "\n" +  
                "sysMenu          = " + oHTA.sysMenu         + "\n" + 
                "version          = " + oHTA.version         + "\n" + 
                "windowState      = " + oHTA.windowState     + "\n" ;
		  
     oPre.innerText = sTempStr;		  
  }
  </SCRIPT>
</HEAD>
<BODY SCROLL="no">
  <PRE ID=oPre>  </PRE>
</BODY>
</HTML>

Это свойство требует наличия MicrosoftR Internet Explorer 5.0 или выше.
APPLICATIONNAME аттрибут | applicationName свойство

Получает имя HTML приложения (HTA).

Синтаксис


HTML

<HTA:APPLICATION APPLICATIONNAME = sAppName... >

Scripting

[ sAppName = ] HTA:APPLICATION.applicationName

Параметры


sAppName

Строка которая определяет имя приложения.

Это свойство доступно только для чтения. Свойство не имеет значения по умолчанию.

Замечание


Будучи установленным в true, свойство singleInstance проверяет значение applicationName перед запуском экземпляра приложения. Чтобы проверка была успешной, значение applicationName должно быть уникальным. Можно использовать значение свойства applicationName для идентификации единственности запущенного приложения, независимо от адреса URL, используемого для доступа к нему.

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
   >
   <SCRIPT>
      alert("applicationName    = " + oHTA.applicationName);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Это свойство требует наличия MicrosoftR Internet Explorer 5.0 или выше.

BORDER аттрибут | border свойство

Получает тип бордюра окна для HTML приложения (HTA).

Синтаксис


HTML

<HTA:APPLICATION BORDER = sType... >

Scripting

[ sType = ] HTA:APPLICATION.border

Пример

sType

Строка определяющая одно из следующих значений:

thick

По умолчанию. Толстый бордюр окна, плюс бордюр для изменения размера окна.

dialog

Бордюр диалогового окна.

none

Окно без бордюра.

thin

Тонкий бордюр окна с заголовком.

Свойство доступно только для чтения. Значение свойства по умолчанию - thick.

Замечание


Свойство border влияет на толщину бордюра и действительно только для окон HTA, у которых есть панель заголовка и сам заголовок. Устанавливая border в none, вы убираете панель заголовка, иконку программы, и кнопки максимизирования, минимизирования. Это свойство может быть использовано со свойством borderStyle, которое контролирует содержимое бордюра в границах окна.

Пример


<HTML>
<HEAD>
   <TITLE>Hello, World!</TITLE>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONAME="myApp"
    BORDER="thin"
   >
   <SCRIPT>
      alert("border    = " + oHTA.border);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Это свойство требует наличия MicrosoftR Internet Explorer 5.0 или выше.

BORDERSTYLE аттрибут | borderStyle свойство

Получает набор стилей бордюра клиентской области внутри окна HTML приложения.

Синтаксис


HTML

<HTA:APPLICATION BORDERSTYLE = sStyle... >

Scripting

[ sStyle = ] HTA:APPLICATION.borderStyle

Параметры


sStyle

Строка которая определяет одно из следующих значений:
normal

По умолчанию. Нормальный бордюр.

complex

Приподнятый и утопленный бордюр.

raised

Приподнятый 3-D бордюр.

static

3-D бордюр, обычно используемый для окон, не обрабатывающих ввод пользователя.

sunken

Утопленный 3-D бордюр.

Это свойство доступно только для чтения. Это свойство имеет значение по умолчанию normal.

Замечания


Все HTA имеют два смежных бордюра: один для содержимого окна, и один для окна приложения. Свойство borderStyle устанавливает стиль для бордюра содержимого, в то время как свойство border контролирует бордюр окна приложения.

Пример


<HTML>
<HEAD>
   <TITLE>Hello, World!</TITLE>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="sampleApp"
    CAPTION="yes"
    BORDER="thin"
    BORDERSTYLE="normal"
   >
   <SCRIPT>
      alert("borderStyle    = " + oHTA.borderStyle);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Это свойство требует наличия MicrosoftR Internet Explorer 5.0 или выше.

Атрибут CAPTION | Свойство caption

Определяет будет ли в окне HTML приложения (HTA) отображаться панель заголовка.

Синтаксис


HTML

<HTA:APPLICATION CAPTION = bTitleBar... >

Scripting

[ bTitleBar = ] HTA:APPLICATION.caption

Возможные значения


bTitleBar

Логическое значение определяющее одно из следующих значений:
yes

- по умолчанию. Панель заголовка отображается.

no

- Панель заголовка не отображается.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


title приложения отображается только когда свойство caption установлено в yes. Отключение свойства caption также отключит кнопки 'Свернуть', 'Развернуть' и программную иконку. В этом случае, вы должны предоставить альтернативный способ выхода из HTA, например, кнопка, вызывающая метод close объекта window .

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    CAPTION="yes" 
   >
   <SCRIPT>
      alert ("caption    = " + oHTA.caption);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Свойство commandLine

Определяет аргументы командной строки, которые использовались для запуска HTML приложения (HTA).

Синтаксис


HTML

N/A

Scripting

[ sPath = ] HTA:APPLICATION.commandLine

Возможные значения


sPath

Строка которая содержит путь и параметры командной строки, которые использовались для запуска HTA.

Это свойство доступно только для чтения. У этого свойства нет значения по умолчанию.

Примечания


Свойство commandLine содержит пустую строку когда HTA было запущено с использованием HTTP протокола.

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
   >
   <SCRIPT>
      alert("commandLine    = " + oHTA.commandLine);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут CONTEXTMENU | Свойство contextMenu

Устанавливает или определяет появляется ли контекстное меню, при нажатии на правую кнопку мыши.

Синтаксис


HTML

<HTA:APPLICATION CONTEXTMENU = sContextMenu... >

Scripting

[ sContextMenu = ] HTA:APPLICATION.contextMenu

Возможные значения


sContextMenu

Строка определяющая одно из следующих значений.
yes

- по умолчанию. Контекстное меню появляется.

no

- контекстное меню не появляется.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


Свойство contextMenu доступно только для чтения, однако для определения начального значения можно использовать атрибут CONTEXTMENU.

Пример


<HTML>
<HEAD>
<HTA:APPLICATION 
 ID=oHTA 
 CONTEXTMENU="no"  
/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>

<SCRIPT>
function readFun()
{
alert("The contextMenu property is set to:  " + oHTA.contextMenu);
}
</SCRIPT>

<BODY> 
<P>Read the property: 
<INPUT TYPE="button"  VALUE="Test contextMenu value" onClick="readFun()"/>
</P>
</BODY>
</HTML>

Атрибут ICON | Свойство icon

Определяет имя и путь к иконке используемой в HTML приложении (HTA).

Синтаксис


HTML

<HTA:APPLICATION ICON = sIcon... >

Scripting

[ sIcon = ] HTA:APPLICATION.icon

Возможные значения


sIcon

Строка определяющая иконку приложения.
System Application Icon

- по умолчанию. HTA использует системную иконку, если значение не определено.

Это свойство доступно только для чтения. По умолчанию значение этого свойства System Application Icon.

Примечания


Атрибут icon распознаёт стандартные файлы MicrosoftR WindowsR, содержащие изображение размером 32x32 пиксела (файлы с расширением .ico).

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    ICON="graphics/face01.ico" 
   >
   <SCRIPT>
      alert ("icon    = " + oHTA.icon);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут INNERBORDER | Свойство innerBorder

Устанавливает или определяет отображается ли внутреняя 3-D граница.

Синтаксис


HTML

<HTA:APPLICATION INNERBORDER = sInnerBorder... >

Scripting

[ sInnerBorder = ] HTA:APPLICATION.innerBorder

Возможные значения


sInnerBorder

Строка определяющая одно из следующих значений.
yes

- по умолчанию. Внутреняя 3-D граница отображается.

no

- внутреняя 3-D граница не отображается.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


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

Пример


<HTML>
<HEAD>
<HTA:APPLICATION 
 ID=oHTA 
 INNERBORDER="no"/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>

<SCRIPT>
function readFun()
{
alert("The innerBorder property is set to:  " + oHTA.innerBorder);
}
</SCRIPT>

<BODY> 
<P>Read the property: 
<INPUT TYPE="button"  VALUE="Test innerBorder value" onClick="readFun()"/>
</P>
</BODY>
</HTML>

Атрибут MAXIMIZEBUTTON | Свойство maximizeButton

Определяет отображается ли кнопка 'Развернуть' на панеле заголовка окна HTML приложения (HTA).

Синтаксис


HTML

<HTA:APPLICATION MAXIMIZEBUTTON = bShowButton... >

Scripting

[ bShowButton = ] HTA:APPLICATION.maximizeButton

Возможные значения


bShowButton

Логическое значение определяющее одно из следующих значений:
yes

- по умолчанию. Кнопка 'Развернуть' отображается.

no

- кнопка 'Развернуть' не отображается.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


Для того чтобы отображались кнопки 'Свернуть' и 'Развернуть', окно должно иметь панель заголовка, или caption.

Пример


<HTML>
<HEAD>
   <TITLE>Hello, World!</TITLE>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    CAPTION="yes"
    MAXIMIZEBUTTON="yes"
   >
   <SCRIPT>
      alert("maximizeButton    = " + oHTA.maximizeButton);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут MINIMIZEBUTTON | Свойство minimizeButton

Определяет отображается ли кнопка 'Свернуть' на панеле заголовка окна HTML приложения (HTA).

Синтаксис


HTML

<HTA:APPLICATION MINIMIZEBUTTON = bShowButton... >

Scripting

[ bShowButton = ] HTA:APPLICATION.minimizeButton

Возможные значения


bShowButton

Логическое значение определяющее одно из следующих значений:
yes

- по умолчанию. Кнопка 'Свернуть' отображается.

no

- кнопка 'Свернуть' отображается не.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


Для того чтобы отображались кнопки 'Свернуть' и 'Развернуть', окно должно иметь панель заголовка, или caption..

Пример


<HTML>
<HEAD>
   <TITLE>Hello, World!</TITLE>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    CAPTION="yes"
    MINIMIZEBUTTON="yes"
   >
   <SCRIPT>
      alert ("minimizeButton    = " + oHTA.minimizeButton);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут NAVIGABLE | Свойство navigable

Устанавливает или определяет в каком окне будут открываться загружаемые документы : в основном окне HTML приложения (HTA), или в новом окне.

Синтаксис


HTML

<HTA:APPLICATION NAVIGABLE = sNavigable... >

Scripting

[ sNavigable = ] HTA:APPLICATION.navigable

Возможные значения


sNavigable

Строка определяющая одно из следующих значений:
no

- по умолчанию. Будут открываться в новых окнах.

yes

- будут открываться в основном окне.

Это свойство доступно только для чтения. По умолчанию значение этого свойства no.

Примечания


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

Атрибут SCROLL | Свойство scroll

Устанавливает или определяет будут ли отображаться полосы прокрутки.

Синтаксис


HTML

<HTA:APPLICATION SCROLL = sScroll... >

Scripting

[ sScroll = ] HTA:APPLICATION.scroll

Возможные значения


sScroll

Строка определяющая одно из следующих значений:
yes

- по умолчанию. Полосы прокрутки отображаются.

no

- полосы прокрутки не отображаются.

auto

Полосы прокрутки появляются только когда содержимое документа не умещается в клиентской области окна.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


Свойство scroll доступно только для чтения, однако можно использовать атрибут SCROLL для присвоения начального значения.

Установление значения свойства body.scroll равным no - это альтернативный способ предотвратить появление полос прокрутки.

Пример


<HTML>
<HEAD>
<HTA:APPLICATION 
 ID=oHTA 
 SCROLL="no"/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>

<SCRIPT>
function readFun()
{
alert("The scroll property is set to:  " + oHTA.scroll);
}
</SCRIPT>

<BODY> 
<P>Read the property: 
<INPUT TYPE="button"  VALUE="Test scroll value" onClick="readFun()"/>
</P>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
</BODY>
</HTML>

Атрибут SCROLLFLAT | Свойство scrollFlat

Устанавливает или определяет в каком виде будут отображаться полосы прокрутки : в 3-х мерном виде, или в 2-х мерном виде.

Синтаксис


HTML

<HTA:APPLICATION SCROLLFLAT = sScrollFlat... >

Scripting

[ sScrollFlat = ] HTA:APPLICATION.scrollFlat

Возможные значения


sScrollFlat

Строка определяющая однио из следующих значений:
yes

- полосы прокрутки двухмерные.

no

- по умолчанию. Полосы прокрутки трёхмерные.

Это свойство доступно только для чтения. По умолчанию значение этого свойства no.

Примечания


Свойство scrollFlat доступно только для чтения, однако для присвоения начального значения можно использовать атрибут SCROLLFLAT.

Пример


<HTML>
<HEAD>
<HTA:APPLICATION 
 ID=oHTA 
 SCROLLFLAT="yes"/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>

<SCRIPT>
function readFun()
{
alert("The scrollFlat property is set to:  " + oHTA.scrollFlat);
}
</SCRIPT>

<BODY> 
<P>Read the property: 
<INPUT TYPE="button"  VALUE="Test scrollFlat value" onClick="readFun()"/>
</P>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
</BODY>
</HTML>

Атрибут SELECTION | Свойство selection

Устанавливает или Определяет может ли содержимое документа быть выбрано мышкой или с помощью клавиатуры.

Синтаксис


HTML

<HTA:APPLICATION SELECTION = sSelection... >

Scripting

[ sSelection = ] HTA:APPLICATION.selection

Возможные значения


sSelection

Строка определяющая одно из следующих значений:
yes

- по умолчанию. Содержимое может быть выбрано.

no

- содержимое не может быть выбрано.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


Свойство selection доступно только для чтения, однако для присвоения начального значения можно использовать атрибут SELECTION.

Присвоение атрибуту SELECTION значения no запрещает появление контекстного меню. В этом случае, присвоение атрибуту CONTEXTMENU значения yes не произведет никакого эффекта.

Замечание   Использование в документе редактируемых элементов переопределяет значение selection. Любой объект может быть выбран, когда значение свойства contentEditable установлено в true где угодно в HTML Приложении (HTA).

Пример


<HTML>
<HEAD>
<HTA:APPLICATION 
 ID=oHTA 
 CONTEXTMENU="yes"
 SELECTION="no"/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>

<SCRIPT>
function readFun()
{
alert("The selection property is set to:  " + oHTA.selection);
}
</SCRIPT>

<BODY> 
<P>Read the property: 
<INPUT TYPE="button"  VALUE="Test selection value" onClick="readFun()"/>
</P>
</BODY>
</HTML>

Атрибут SHOWINTASKBAR | Свойство showInTaskBar

Определяет будет ли HTML приложение (HTA) появляться на панеле задач MicrosoftR WindowsR.

Синтаксис


HTML

<HTA:APPLICATION SHOWINTASKBAR = bShow... >

Scripting

[ bShow = ] HTA:APPLICATION.showInTaskBar

Возможные значения


bShow

Логическое значение определяющее одно из следующих значений:
yes

- по умолчанию. Приложение отбражается на панеле задач.

no

- приложение не отбражается на панеле задач.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


Свойство showInTaskBar не влияет на появление приложения в списке приложений, который появляется когда пользователь нажимает ALT+TAB.

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    SHOWINTASKBAR="no"
   >
   <SCRIPT>
      alert ("showInTaskBar    = " + oHTA.showInTaskBar);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут SINGLEINSTANCE | Свойство singleInstance

Определяет может ли быть запущенно больше одного экземпляра HTML приложения (HTA) одновременно.

Синтаксис


HTML

<HTA:APPLICATION SINGLEINSTANCE = bOpen... >

Scripting

[ bOpen = ] HTA:APPLICATION.singleInstance

Возможные значения


bOpen

Логическое значение определяющее одно из следующих значений:
yes

- только один экземпляр приложения может быть запущен.

no

- по умолчанию. Может быть запущенно несколько экземпляров приложения одновременно.

Это свойство доступно только для чтения. По умолчанию значение этого свойства no.

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    SINGLEINSTANCE="yes"
   >
   <SCRIPT>
      alert("singleInstance    = " + oHTA.singleInstance);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут SYSMENU | Свойство sysMenu

Определяет отображается ли системное меню в HTML приложении (HTA).

Синтаксис


HTML

<HTA:APPLICATION SYSMENU = bMenu... >

Scripting

[ bMenu = ] HTA:APPLICATION.sysMenu

Возможные значения


bMenu

Логическое значение определяющее одно из следующих значений:
yes

- по умолчанию. Системное меню отображается на панеле заголовка.

no

- системное меню отображается на панеле заголовка.

Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.

Примечания


Системное меню HTA обозначается программной иконкой в левом углу панели заголовка When clicked, системное меню HTA показывает все команды входящие в стандартное MicrosoftR WindowsR системное меню, включая Восстановить, Переместить, Размер, Свернуть, Развернуть, и Закрыть.

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    SYSMENU="yes"
   >
   <SCRIPT>
      alert("sysMenu    = " + oHTA.sysMenu);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут VERSION | Свойство version

Определяет номер версии HTML приложения (HTA).

Синтаксис


HTML

<HTA:APPLICATION VERSION = sVersion... >

Scripting

[ sVersion = ] HTA:APPLICATION.version

Возможные значения


sVersion

Строка определяющая номер версии приложения.

Это свойство доступно только для чтения. У этого свойства нет значения по умолчанию.

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    VERSION="1.0" 
   >
   <SCRIPT>
      alert("version    = " + oHTA.version);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

Атрибут WINDOWSTATE | Свойство windowState

Устанавливает или определяет начальные размеры окна HTML приложения (HTA).

Синтаксис


HTML

<HTA:APPLICATION WINDOWSTATE = sWindowSize... >

Scripting

[ sWindowSize = ] HTA:APPLICATION.windowState

Возможные значения


sWindowSize

Строка определяющая одно из следующих значений:
normal

- по умолчанию. Размер окна - стандартный размер для MicrosoftR Internet Explorer.

minimize

- появляется только title окна на панеле задач.

maximize

- окно появляется развёрнутым на весь экран.

Это свойство доступно только для чтения. По умолчанию значение этого свойства normal.

Пример


<HTML>
<HEAD>
   <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    WINDOWSTATE="maximize"
   >
   <SCRIPT>
      alert("windowState    = " + oHTA.windowState);
   </SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML>

APPLICATION Attribute

Показывает, является ли содержимоеобъекта HTML приложением и, следовательно, не является входящим в модель безопасности программы просмотра.

Синтаксис


HTML

<ELEMENT APPLICATION=bApplication ... >

Scripting

N/A

Возможные значения


bApplication

Булеан, определяющий, действительно ли содержимое основано на модели безопасности программы просмотра.
no

- по умолчанию. Применяются правила безопасности программы просмотра для ненадежного содержания; таким образом, всё содержимое FRAME и IFRAME является ненадёжным.

yes

- всё содержимое FRAME и IFRAME является надёжным.

Примечания


Атрибут APPLICATION может быть использован только в HTA.

Вы можете использовать это свойство для контроля содержимого Вашей Web-страницы. Например, Вы можете использовать атрибут для создания HTA, который содержит один FRAME, который позволяет доступ к ненадёжному содержанию, такому, как Internet URL, и другой FRAME, который позволяет доступ к надёжному содержанию. Вы можете также использовать атрибут для перекрёстного домейн скриптинга между фреймами с HTA.

Вложенные FRAME или IFRAME требуют каждого контейнера FRAME, чтобы быть НТА (например, APPPLICATION="yes") для глубокого FRAME или IFRAME для принятия величиной APPLICATION значения "yes". Возьмём, например, IFRAME, который содержит набор фреймов. Каждый FRAME в наборе фреймов считается вложенным. Для глубокого FRAME, учитывая безопасность, он и каждый родительский FRAME должен быть объявлен как APPLICATION=''yes'.

HTA разработаны для предотвращения возможности скриптового доступа каждого ненадёжного FRAME и IFRAME к HTA, который их содержит. В случае FRAME без HTA фрейм более высокого порядка включает верхнее окно для каждого FRAME, входящего в его состав. Window.top и window.self те же для этого фрейма. Вдобавок, ненадёжные FRAME или IFRAME не получает ни ссылку, ни открытый URL родительского HTA. Это значит, что FRAME или IFRAME не влияют на родительское окно, содержащее HTA

Учебник по FileSystemObject


Объектная модель FileSystemObject


Введение в FileSystemObject и Scripting Run-Time Library


Объекты FileSystemObject


Программируя с FileSystemObject


Работа с дисками и каталогами


Работа с файлами

Объектная модель FileSystemObject


При создании сценариев для Active Server Pages, Windows Scripting Host или других приложений, где могут быть использованы сценарии, часто нужно добавлять, переносить, изменять, создавать или удалять каталоги (директории) и файлы на Web-сервере. Также может понадобиться возможность управления и информация о дисках, которые связаны с Web-сервером. Использование сценариев позволит Вам работать с дисками, каталогами и файлами, используя объектную модель FileSystemObject.

Введение в FileSystemObject и Scripting Run-Time Library


Объектная модель FileSystemObject (FSO) позволяет Вам использовать привычный синтаксис object.method с большим числом свойств, методов и событий для работы с каталогами и файлами.
Использование этой объектно-ориентированной модели возможно с:

  • HTML для создания Web-страниц
  • Windows Scripting Host для создания пакетных файлов для Microsoft Windows
  • Script Control для обеспечения использования сценариев для приложений, написанных на других языках

Использование FSO на стороне клиента поднимает серьезные вопросы об обеспечении безопасности локальной файловой системы клиента от возможного несанкционированного доступа. Здесь предполагается использование объектной модели FSO для создания сценариев для Web-страниц на стороне сервера. При этом установки безопасности Internet Explorer по умолчанию не позволяют на стороне клиента использовать объекты FileSystemObject. Изменение этих установок по умолчанию может повлечь за собой возможность несанкционированного доступа к файловой системе локального компьютера, что в результате может привести к нарушению целостности системы, потери данных и т.д.
Объекты FSO дают возможность вашим приложениям на стороне сервера создавать, изменять, переносить и удалять каталоги, определять, существует та либо иная папка и где она находится. Вы также можете найти такую информацию о каталогах, как их имена, даты их создания или последнего изменения и т.п.
Объекты FSO также облегчают работу с файлами. При работе с файлами основной задачей является сохранение данных с наилучшим использованием места и ресурсов, в формате, обеспечивающим лёгкий доступ. Вам нужно создавать файлы, вставлять и изменять информацию, и выводить (читать) её. Сохранение информацию в базе данных, как Access или SQL Server, добавляет значительное количество дополнений в ваше приложение, тогда сохранение ваших данных в двоичный или текстовый файл будет наиболее эффективным решением.
Объектная модель FSO, которая содержится в библиотеке сценариев (Scrrun.dll), поддерживает создание текстового файла и работу с ним с помощью объекта TextStream. Хотя пока ещё не поддерживается создание двоичных файлов и операции с ними, в будущем планируется это сделать.

Объекты FileSystemObject


Объект/Коллекция

Описание

FileSystemObject

Основной объект. Содержит методы и свойства, позволяющие создавать, удалять, получать информацию и в общем управлять дисками, каталогами и файлами. Многие методы этого объекта повторяются в других объектах FSO; это сделано для удобства.

Drive

Объект. Содержит методы и свойства, которые позволяют получить информацию о дисках системы, например их название и сколько свободного места доступно. Запомните, что "диском" считается не только винчестер, но и CD-ROM диск, диск RAM и т.д. Диск не обязательно должен быть присоединён к системе, он также может быть логически подключён через сеть.

Drives

Коллекция. Предоставляет список дисков, подключённых в системе, как физических, так и логических. Коллекция Drives включает все диски, независимо от типа.

File

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

Files

Коллекция. Предоставляет список файлов, содержащихся в каталоге.

Folder

Объект. Содержит методы и свойства, которые позволяют создавать, удалять или перемещать каталоги. Также позволяет запрашивать систему о имени каталога, пути, и другие различные свойства.

Folders

Коллекция. Предоставляет список каталогов в Folder.

TextStream

Объект. Позволяет читать и записывать в текстовые файлы.

Программируя с FileSystemObject


Для программирования с объектной моделью FileSystemObject:

  • Используем метод CreateObject для создания объекта FileSystemObject.
  • Используем соответствующий метод в созданном объекте.
  • Получаем доступ к свойствам объекта.

Объектная модель FSO содержится в библиотеке сценариев, которая находится в файле Scrrun.dll. Следовательно, вы должны иметь этот файл в соответствующей директории системы на вашем Web-сервере для использования объектной модели FSO.

Создание объекта FileSystemObject
Во-первых, создайте объект FileSystemObject, используя метод CreateObject. В VBScript используйте следующий код для создания экземплярa FileSystemObject:

    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    

В Jscript то же самое будет делать следующий код:

    var fso;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    

В обоих этих примерах Scripting является именем библиотеки и FileSystemObject является именем объекта, который вы хотите создать. Вы можете создать только один экземпляр объекта FileSystemObject.
Применение соответствующего метода
Во-вторых, используйте соответствующий метод объекта FileSystemObject. Например, для создания нового объекта используйте или CreateTextFile или CreateFolder (объектная модель FSO не поддерживает создание или удаление дисков). Для удаления объектов используйте методы DeleteFile и DeleteFolder объекта FileSystemObject, или метод Delete объектов File и Folder. Вы также можете копировать и перемещать файлы и каталоги, используя соответствующие методы.
Примечание. Некоторые функциональные возможности в FileSystemObject являются излишними. Например, вы можете скопировать файлы, используя метод CopyFile объекта FileSystemObject или метод Copy объекта File. Эти методы работают одинаково.
Доступ к существующим дискам, файлам и каталогам
Для получения доступа к существующим дискам, файлам или каталогам используйте соответствующий "get" метод объекта FileSystemObject:

  • GetDrive
  • GetFolder
  • GetFile
Для получения доступа к существующему файлу в VBScript:

    Dim fso, f1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.GetFile("c:\test.txt")
    

В Jscript то же самое будет делать следующий код:

    var fso, f1;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f1 = fso.GetFile("c:\\test.txt");
    

Не используйте "get" методы для только что созданных объектов после того, как "create" функция уже вернула handle этого объекта. Например, если вы создали новый каталог, используя метод CreateFolder, не используйте метод GetFolder для доступа к таким его свойствам, как Name, Path, Size. Только установите переменную в функции CreateFolder для получения handle только созданной директории, затем получайте доступ к его свойствам, методам и событиям. Чтобы сделать это в VBScript, используйте следующий код:

    Sub CreateFolder
    Dim fso, fldr
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fldr = fso.CreateFolder("C:\MyTest")
    alert("Created folder: " & fldr.Name)
    End Sub
    

Для установки переменной в функции CreateFolder в JScript:

    function CreateFolder()
    {
     var fso, fldr;
     fso = new ActiveXObject("Scripting.FileSystemObject");
     fldr = fso.CreateFolder("C:\\MyTest");
     alert("Created folder: " + fldr.Name);
    }
    

Выполнить пример

Получение доступа к свойствам объекта
Получив handle объекта, вы можете получить доступ к его свойствам. Например, для получения имени определённой папки, сначала создайте экземпляр объекта, затем получите его handle с помощью соответствующего метода (в этом случае, методом GetFolder, после того, как каталог уже создан).
Используйте этот код для получения handle методом GetFolder в VBScript:

    Set fldr = fso.GetFolder("c:\")
    

В Jscript то же самое будет делать следующий код:

    var fldr = fso.GetFolder("c:\\");
    

Имея handle объекта Folder, вы можете проверить его свойство Name. Используйте следующий код для проверки этого в VBScript:

    alert("Folder name is: " & fldr.Name)
    

В Jscript то же самое будет делать следующий код:

    alert("Folder name is: " + fldr.Name);
    

Для нахождения последнего времени изменения файла используйте данный VBScript код:

    Dim fso, f1
    Set fso = CreateObject("Scripting.FileSystemObject").
    Set f1 = fso.GetFile("c:\detlog.txt")
    alert("File last modified: " & f1.DateLastModified) 
    

В Jscript то же самое будет делать следующий код:

    var fso, f1;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f1 = fso.GetFile("c:\\detlog.txt");
    alert("File last modified: " + f1.DateLastModified);
    

Выполнить пример

Работа с дисками и каталогами


С объектной моделью FileSystemObject (FSO) Вы можете работать с дисками и каталогами программно так же, как и в диалоговом режиме Windows Explorer. Вы можете копировать и перемещать каталоги, получать информацию о дисках и каталогах и т.п.
Получение информации о дисках
Объект Drive позволяет Вам получить информацию о дисках, которые подключёны в системе как физически, так и через сеть. Его свойства позволяют получить информацию о:

  • Общий размер диска в байтах (свойство TotalSize)
  • Сколько места доступно на диске в байтах (свойства AvailableSpace или FreeSpace)
  • Какая буква присвоена диску (свойство DriveLetter)
  • Какой тип диска (съёмный, постоянный, сетевой, CD-ROM или диск RAM) (свойство DriveType)
  • Серийный номер диска (свойство SerialNumber)
  • Тип используемой на диске файловой системы (FAT, FAT32, NTFS и т.д.) (свойство FileSystem)
  • Доступен ли диск для использования (свойство IsReady)
  • Имя части диска и/или тома (свойства ShareName и VolumeName)
  • Путь или корневой каталог диска (свойства Path и RootFolder)

Пример использования объекта Object
Можно использовать объект Drive для получения информации о диске. Вы не увидите ссылку на объект Drive в следующем коде, вместо этого используется метод GetDrive для получения ссылки на существующий объект Drive (в этом случае drv).
Следующий пример демонстрирует как использовать объект Drive в VBScript:

    Sub ShowDriveInfo(drvPath)
    Dim fso, drv, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
    s = "Drive " & UCase(drvPath) & " - "
    s = s & drv.VolumeName & "\n"
    s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
    s = s & " Kb" & "\n"
    s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
    s = s & " Kb" & "\n"
    alert(s)
    End Sub
    

Следующий код делает тоже самое в in JScript:

    function ShowDriveInfo1(drvPath)
    {
     var fso, drv, s ="";
     fso = new ActiveXObject("Scripting.FileSystemObject");
     drv = fso.GetDrive(fso.GetDriveName(drvPath));
     s += "Drive " + drvPath.toUpperCase()+ " - ";
     s += drv.VolumeName + "\n";
     s += "Total Space: " + drv.TotalSize / 1024;
     s += " Kb" + "\n"; 
     s += "Free Space: " + drv.FreeSpace / 1024;
     s += " Kb" + "\n";
     alert(s);
    }
    

Диск:
Выполнить пример

Работа с каталогами
Общие задачи при работе с каталогами и методы их выполнения описаны в следующей таблице:

Задача

Метод

Создание каталога.

FileSystemObject.CreateFolder

Удаление каталога.

Folder.Delete или FileSystemObject.DeleteFolder

Перемещение каталога.

Folder.Move или FileSystemObject.MoveFolder

Копирование каталога.

Folder.Copy или FileSystemObject.CopyFolder

Получить имя каталога.

Folder.Name

Выяснить, существует ли каталог

FileSystemObject.FolderExists

Получить экземпляр существующего объекта Folder.

FileSystemObject.GetFolder

Выяснить имя каталога в корневом каталоге.

FileSystemObject.GetParentFolderName

Получить путь к системным директориям.

FileSystemObject.GetSpecialFolder

Следующий пример демонстрирует, как используются объекты Folder и FileSystemObject для управления каталогами и получения информации о них в VBScript:

    Sub ShowFolderInfo()
    Dim fso, fldr, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fldr = fso.GetFolder("c:")
    alert ("Parent folder name is: " & fldr &
    "\n")
    alert ("Contained on drive " & fldr.Drive &
    "\n")
    If fldr.IsRootFolder = True Then
    alert ("This is the root folder." &
    ""\n"<br>")
    Else
    alert ("This folder isn't a root folder." &
    "<br><br>" )
    End If
    fso.CreateFolder ("C:\Bogus")
    alert ("Created folder C:\Bogus" & "\n")
    alert ("Basename = " & fso.GetBaseName("c:\bogus") &
    "\n")
    fso.DeleteFolder ("C:\Bogus")
    alert ("Deleted folder C:\Bogus" & "\n")
    End Sub
    

Этот пример показывает, как используются объекты Folder и FileSystemObject in JScript:

    function ShowFolderInfo()
    {
    var fso, fldr, s = "";
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fldr = fso.GetFolder("c:");
    alert("Parent folder name is: " + fldr + "\n");
    alert("Contained on drive " + fldr.Drive + "\n");
    if (fldr.IsRootFolder)
    alert("This is the root folder.");
    else
    alert("This folder isn't a root folder.");
    alert("<br><br>");
    fso.CreateFolder ("C:\\Bogus");
    alert("Created folder C:\\Bogus" + "\n");
    alert("Basename = " + fso.GetBaseName("c:\\bogus") +
    "\n");
    fso.DeleteFolder ("C:\\Bogus");
    alert("Deleted folder C:\\Bogus" + "\n");
    }
    

Выполнить пример

Работа с файлами


Существует два основных направления при работе с файлами:

  • Создание файлов, добавление или удаление из них данных, и чтение файлов
  • Перемещение, копирование и удаление файлов

Создание файлов
Существует три способа создания пустого текстового файла (иногда называют "текстовый поток").
Во-первых, с помощью метода CreateTextFile. Следующий пример демонстрирует, как создать текстовый файл, используя этот метод в VBScript:

    Dim fso, f1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
    

Для использования этого метода в JScript наберите следующий код:

    var fso, f1;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f1 = fso.CreateTextFile("c:\\testfile.txt", true);
    

Во-вторых, можно создать текстовый файл, используя метод OpenTextFile объекта FileSystemObject с установленным флагом ForWriting. В VBScript код будет следующим:

    Dim fso, ts
    Const ForWriting = 2
    Set fso = CreateObject("Scripting. FileSystemObject")
    Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
    

Для создания текстового файла с использованием этого метода в JScript наберите следующий код:

    var fso, ts;
    var ForWriting= 2;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
    

В-третьих, создать текстовый файл можно с использованием метода OpenAsTextStream с установленным флагом ForWriting. В VBScript код будет следующим:

    Dim fso, f1, ts
    Const ForWriting = 2
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateTextFile ("c:\test1.txt")
    Set f1 = fso.GetFile("c:\test1.txt")
    Set ts = f1.OpenAsTextStream(ForWriting, True)
    

В JScript код будет следующим:

    var fso, f1, ts;
    var ForWriting = 2;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fso.CreateTextFile ("c:\\test1.txt");
    f1 = fso.GetFile("c:\\test1.txt");
    ts = f1.OpenAsTextStream(ForWriting, true);
    

Запись информации в файл
Как только текстовый файл создан, запись данных в файл происходит в три шага:

  1. Открытие текстового файла.
  2. Запись данных.
  3. Закрытие файла.

Для открытия существующего файла используйте либо метод OpenTextFile объекта FileSystemObject, либо метод OpenAsTextStream объекта File.
Для записи данных в открытый текстовый файл используйте методы Write, WriteLine или WriteBlankLines объекта TextStream в соответствие с задачами, описанными в следующей таблице.

Задача

Метод

Запись данных в открытый текстовый файл без символа перехода на новую строку. Write
Запись данных в открытый текстовый файл с символом перехода на новую строку. WriteLine
Запись одной или более пустых строк в открытый текстовый файл. WriteBlankLines

Для закрытия открытого файла используйте метод Close объекта TextStream.
Примечание. Символ перехода на новую строку содержит символ или символы (в зависимости от операционной системы) для перехода курсора на начало новой строки (возврат каретки/ввод строки). Имейте в виду, что на конце некоторых строк могут уже стоять такие непечатные символы.
Следующий пример на VBScript показывает, как открыть файл, использовать все три метода записи данных в файл, и затем закрыть файл:

    Sub CreateFile()
    Dim fso, tf
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set tf = fso.CreateTextFile("c:\testfile.txt", True)
    tf.WriteLine("Testing 1, 2, 3.") 
    tf.WriteBlankLines(3) 
    tf.Write ("This is a test.") 
    tf.Close
    End Sub
    

Этот пример показывает, как использовать три метода в JScript:

    function CreateFile()
    {
    var fso, tf;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    tf = fso.CreateTextFile("c:\\testfile.txt", true);
    tf.WriteLine("Testing 1, 2, 3.") ;
    tf.WriteBlankLines(3) ;
    tf.Write ("This is a test.");
    tf.Close();
    }
    

Выполнить пример

Чтение файлов
Для чтения данных из текстового файла используйте методы Read, ReadLine, или ReadAll объекта TextStream. Следующая таблица описывает применение этих методов для различных задач:

Задача

Метод

Прочитать указанное число символов из файла.

Read

Прочитать строку (не включая символа новой строки).

ReadLine

Прочитать всё содержимое текстового файла.

ReadAll

Если Вы используете методы Read или ReadLine и хотите пропустить определённую часть данных, используйте методы Skip or SkipLine. Результат работы функции чтения сохранится в строке, которая может быть отображена, обработана функциями работы со строками (такими как Left, Right и Mid), присоединена и т.д.
Следующий пример на VBScript показывает, как открыть файл, записать в него, и затем прочитать с него:

    Sub ReadFiles
    Dim fso, f1, ts, s
    Const ForReading = 1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
    alert("Writing file <br>")
    f1.WriteLine "Hello World"
    f1.WriteBlankLines(1)
    f1.Close
    alert("Reading file <br>")
    Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
    s = ts.ReadLine
    alert("File contents = '" & s & "'")
    ts.Close
    End Sub
    

Этот код делает то же самое на JScript:

    function ReadFiles()
    {
    var fso, f1, ts, s;
    var ForReading = 1;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f1 = fso.CreateTextFile("c:\\testfile.txt", true);
    alert("Writing file <br>");
    f1.WriteLine("Hello World");
    f1.WriteBlankLines(1);
    f1.Close();
    alert("Reading file <br>");
    ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
    s = ts.ReadLine();
    alert("File contents = '" + s + "'");
    ts.Close();
    }
    

Выполнить пример

Перемещение, копирование и удаление файлов
Объектная модель FSO имеет по два метода для перемещение, копирование и удаление файлов, что и показано в таблице.

Задача

Метод

Переместить файл

File.Move или FileSystemObject.MoveFile

Скопировать файл

File.Copy или FileSystemObject.CopyFile

Удалить файл

File.Delete или FileSystemObject.DeleteFile

Следующий пример на VBScript создаёт текстовый файл в корневом каталоге диска C, записывает некоторую информацию в него, переносить файл в директорию \tmp, копирует файл в директорию \temp, затем удаляет копии из обоих директорий.
Для того, чтобы следующий пример работал, создайте директории \tmp and \temp в корневом каталоге диска C:

    Sub ManipFiles
    Dim fso, f1, f2, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
    alert("Writing file <br>")
    f1.Write ("This is a test.")
    f1.Close
    alert("Moving file to c:\tmp <br>")
    Set f2 = fso.GetFile("c:\testfile.txt")
    f2.Move ("c:\tmp\testfile.txt")
    alert("Copying file to c:\temp <br>")
    f2.Copy ("c:\temp\testfile.txt")
    alert("Deleting files <br>")
    Set f2 = fso.GetFile("c:\tmp\testfile.txt")
    Set f3 = fso.GetFile("c:\temp\testfile.txt")
    f2.Delete
    f3.Delete
    alert("All done!")
    End Sub
    

То же самое делает код на JScript:

    function ManipFiles()
    {
    var fso, f1, f2, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f1 = fso.CreateTextFile("c:\\testfile.txt", true);
    alert("Writing file <br>");
    f1.Write("This is a test.");
    f1.Close();
    alert("Moving file to c:\\tmp <br>");
    f2 = fso.GetFile("c:\\testfile.txt");
    f2.Move ("c:\\tmp\\testfile.txt");
    alert("Copying file to c:\\temp <br>");
    f2.Copy ("c:\\temp\\testfile.txt");
    alert("Deleting files <br>");
    f2 = fso.GetFile("c:\\tmp\\testfile.txt");
    f3 = fso.GetFile("c:\\temp\\testfile.txt");
    f2.Delete();
    f3.Delete();
    alert("All done!");
    }
    

Выполнить пример

Справочник по FileSystemObject: Алфавитный указатель


Элемент языка

Описание

Add

Добавляет новую папку в коллекцию Folders

AtEndOfLine

Возвращает True, если указатель в файле непосредственно предшествует маркеру "конец строки" в файле TextStream; False если нет.

AtEndOfStream

Возвращает True, если указатель в файле находится в конце файла TextStream; False если нет.

Attributes

Устанавливает или возвращает аттрибуты файла или папки.

AvailableSpace

Возвращает количество свободного для пользователя места на указанном диске или сетевом ресурсе.

BuildPath

Добавляет имя к существующему пути.

Close

Закрывает открытый TextStream файл.

Column

Возвращает номер колонки текущей символьной позиции в TextStream файле.

Copy

Копирует указанный файл или папку из одного местоположения в другое.

CopyFile

Копирует один или несколько файлов из одного местоположения в другое.

CopyFolder

Рекурсивно копирует один или несколько каталогов из одного местоположения в другое.

CreateFolder

Создает каталог.

CreateTextFile

Создает указанное имя файла и возвращает объект TextStream, который может быть использован для чтения или записи в файл.

DateCreated

Возвращает дату и время создания указанного файла или папки.

DateLastAccessed

Возвращает дату и время последнего обращения к указанному файлу или папке.

DateLastModified

Возвращает дату и время последнего изменения указанного файла или папки.

Delete

Удаляет указанный файл или папку.

DeleteFile

Удаляет указанный файл.

DeleteFolder

Удаляет указанную папку и ее содержимое.

Drive Объект

Обеспечивает доступ к свойствам определенного диска или сетевого ресурса.

Drive

Возвращает букву диска, на котором находится указанный файл или папка.

DriveExists

Возвращает True, если указанный диск существует; False если нет.

DriveLetter

Возвращает букву диска физического устройства или сетевого ресурса.

Drives Коллекция

Коллекция всех доступных дисков (только для чтения).

Drives

Возвращает коллекцию Drives, состоящую из всех объектов Drive, доступных на локальной машине.

DriveType

Возвращает значение, отражающее тип указанного диска.

File Объект

Обеспечивает доступ ко всем свойствам файла.

FileExists

Возвращает True, если указанный файл существует; False, если нет.

Files Коллекция

Коллекция всех объектов File внутри папки.

Files

Возвращает коллекцию Files, состоящую из всех объектов File содержащихся в указанной папке, включая файлы с аттрибутами "скрытый" и "системный".

FileSystemObject Объект

Обеспечивает доступ к файловой системе компьютера.

FileSystem

Возвращает тип используемой на указанном диске файловой системы.

Folder Объект

Обеспечивает доступ ко всем свойствам папки.

Folders Коллекция

Коллекция всех объектов Folder содержащихся внутри объекта Folder.

FolderExists

Возвращает True, если указанная папка существует; False, если нет.

FreeSpace

Возвращает количество доступного пользователю пространства на указанном диске или сетевом ресурсе.

GetAbsolutePathName

Возвращает полный и недвусмысленный путь из предоставляемого указания пути.

GetBaseName

Возвращает строку, содержащую базовое имя файла (без какого-либо расширения), или папки по указанному пути.

GetDrive

Возвращает объект Drive соответствующий диску по указанному пути.

GetDriveName

Возвращает строку, содержащую имя диска по указанному пути.

GetExtensionName

Возвращает строку, содержащую расширение для последней компоненты в пути.

GetFile

Возвращает объект File соответствующий файлу по указанному пути.

GetFileName

Возвращает последнее имя файла или папки по указанному пути который не является спецификацией диска.

GetFolder

Возвращает объект Folder соответствующий папке по указанному пути.

GetParentFolderName

Возвращает строку, содержащую имя корневого каталога последнего файла или папки указанных в пути.

GetSpecialFolder

Возвращает указанную специальную папку.

GetTempName

Возвращает имя случайно сгенерированного временного файла или папки.

IsReady

Возвращает True, если указанный диск готов; False если нет.

IsRootFolder

Возвращает True, если указанная папка является корневой; False если нет.

Line

Возвращает текущий номер строки в файле TextStream.

Move

Переносит указанный файл или папку из одного местоположения в другое.

MoveFile

Переносит один или несколько файлов из одного местоположения в другое.

MoveFolder

Переносит один или несколоько каталогов из одного местоположения в другое.

Name

Устанавливает или возвращает имя указанного файла или папки.

OpenAsTextStream

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

OpenTextFile

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

ParentFolder

Возвращает объект Folder корневого для указанного файла или папки каталога.

Path

Возвращает путь для указанного файла, папки или диска.

Read

Читает указанное количество символов из TextStream файла и возвращает результирующую строку.

ReadAll

Читает весь TextStream файл и возвращает результирующую строку.

ReadLine

Читает всю строку (все исключая символ конца строки) из TextStream файла и возвращает результирующую строку.

RootFolder

Возвращает объект Folder представляющий корневой каталог указанного диска.

SerialNumber

Возвращает десятичный серийный номер, используемый для уникальной идентификации тома диска.

ShareName

Возвращает сетевое имя ресурса для указанного диска.

ShortName

Возвращает короткое имя, используемое программами которые требуют раннего 8.3 соглашения об именах файлов.

ShortPath

Возвращает короткий путь, используемый программами, которые требуют раннего 8.3 соглашения об именах файлов.

Size

Возвращает размер, в байтах, указанного файла или папки.

Skip

Пропускает указанное количество символов во время чтения TextStream файла.

SkipLine

Пропускает следующую строку во время чтения TextStream файла.

SubFolders

Возвращает коллекцию Folders, содержащую все папки, содержащиеся в указанной папке, включая папки с атрибутами "скрытый" и "системный".

TextStream Объект

Облегчает последовательный доступ к файлу.

TotalSize

Возвращает полный размер, в байтах, диска или сетевого ресурса.

Type

Возвращает информацию о типе файла или папки.

VolumeName

Устанавливает или возвращает имя тома указанного диска.

Write

Записывает указанную строку в TextStream файл.

WriteBlankLines

Записывает указанное количество символов новой строки в TextStream файл.

WriteLine

Записывает указанную строку и символ новой строки в TextStream файл.

Справочник по FileSystemObject: Объекты


Элемент языка

Описание

Drive Объект

Обеспечивает доступ к свойствам определенного диска или сетевого ресурса.

Drives Коллекция

Коллекция всех доступных дисков (только для чтения).

File Объект

Обеспечивает доступ ко всем свойствам файла.

Files Коллекция

Коллекция всех объектов File внутри папки.

FileSystemObject Объект

Обеспечивает доступ к файловой системе компьютера.

Folder Объект

Обеспечивает доступ ко всем свойствам папки.

Folders Коллекция

Коллекция всех объектов Folder содержащихся внутри объекта Folder.

TextStream Объект

Облегчает последовательный доступ к файлу.

Справочник по FileSystemObject: Методы


Элемент языка

Описание

Add

Добавляет новую папку в коллекцию Folders

BuildPath

Добавляет имя к существующему пути.

Close

Закрывает открытый TextStream файл.

Copy

Копирует указанный файл или папку из одного местоположения в другое.

CopyFile

Копирует один или несколько файлов из одного местоположения в другое.

CopyFolder

Рекурсивно копирует один или несколько каталогов из одного местоположения в другое.

CreateFolder

Создает каталог.

CreateTextFile

Создает указанное имя файла и возвращает объект TextStream, который может быть использован для чтения или записи в файл.

Delete

Удаляет указанный файл или папку.

DeleteFile

Удаляет указанный файл.

DeleteFolder

Удаляет указанную папку и ее содержимое.

DriveExists

Возвращает True, если указанный диск существует; False если нет.

FileExists

Возвращает True, если указанный файл существует; False, если нет.

FolderExists

Возвращает True, если указанная папка существует; False, если нет.

GetAbsolutePathName

Возвращает полный и недвусмысленный путь из предоставляемого указания пути.

GetBaseName

Возвращает строку, содержащую базовое имя файла (без какого-либо расширения), или папки по указанному пути.

GetDrive

Возвращает объект Drive соответствующий диску по указанному пути.

GetDriveName

Возвращает строку, содержащую имя диска по указанному пути.

GetExtensionName

Возвращает строку, содержащую расширение для последней компоненты в пути.

GetFile

Возвращает объект File соответствующий файлу по указанному пути.

GetFileName

Возвращает последнее имя файла или папки по указанному пути который не является спецификацией диска.

GetFolder

Возвращает объект Folder соответствующий папке по указанному пути.

GetParentFolderName

Возвращает строку, содержащую имя корневого каталога последнего файла или папки указанных в пути.

GetSpecialFolder

Возвращает указанную специальную папку.

GetTempName

Возвращает имя случайно сгенерированного временного файла или папки.

Move

Переносит указанный файл или папку из одного местоположения в другое.

MoveFile

Переносит один или несколько файлов из одного местоположения в другое.

MoveFolder

Переносит один или несколоько каталогов из одного местоположения в другое.

OpenAsTextStream

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

OpenTextFile

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

Read

Читает указанное количество символов из TextStream файла и возвращает результирующую строку.

ReadAll

Читает весь TextStream файл и возвращает результирующую строку.

ReadLine

Читает всю строку (все исключая символ конца строки) из TextStream файла и возвращает результирующую строку.

Skip

Пропускает указанное количество символов во время чтения TextStream файла.

SkipLine

Пропускает следующую строку во время чтения TextStream файла.

Write

Записывает указанную строку в TextStream файл.

WriteBlankLines

Записывает указанное количество символов новой строки в TextStream файл.

WriteLine

Записывает указанную строку и символ новой строки в TextStream файл.

Справочник по FileSystemObject: Свойства


Элемент языка

Описание

AtEndOfLine

Возвращает True, если указатель в файле непосредственно предшествует маркеру "конец строки" в файле TextStream; False если нет.

AtEndOfStream

Возвращает True, если указатель в файле находится в конце файла TextStream; False если нет.

Attributes

Устанавливает или возвращает аттрибуты файла или папки.

AvailableSpace

Возвращает количество свободного для пользователя места на указанном диске или сетевом ресурсе.

Column

Возвращает номер колонки текущей символьной позиции в TextStream файле.

DateCreated

Возвращает дату и время создания указанного файла или папки.

DateLastAccessed

Возвращает дату и время последнего обращения к указанному файлу или папке.

DateLastModified

Возвращает дату и время последнего изменения указанного файла или папки.

Drive

Возвращает букву диска, на котором находится указанный файл или папка.

DriveLetter

Возвращает букву диска физического устройства или сетевого ресурса.

Drives

Возвращает коллекцию Drives, состоящую из всех объектов Drive, доступных на локальной машине.

DriveType

Возвращает значение, отражающее тип указанного диска.

Files

Возвращает коллекцию Files, состоящую из всех объектов File содержащихся в указанной папке, включая файлы с аттрибутами "скрытый" и "системный".

FileSystem

Возвращает тип используемой на указанном диске файловой системы.

FreeSpace

Возвращает количество доступного пользователю пространства на указанном диске или сетевом ресурсе.

IsReady

Возвращает True, если указанный диск готов; False если нет.

IsRootFolder

Возвращает True, если указанная папка является корневой; False если нет.

Line

Возвращает текущий номер строки в файле TextStream.

Name

Устанавливает или возвращает имя указанного файла или папки.

ParentFolder

Возвращает объект Folder корневого для указанного файла или папки каталога.

Path

Возвращает путь для указанного файла, папки или диска.

RootFolder

Возвращает объект Folder представляющий корневой каталог указанного диска.

SerialNumber

Возвращает десятичный серийный номер, используемый для уникальной идентификации тома диска.

ShareName

Возвращает сетевое имя ресурса для указанного диска.

ShortName

Возвращает короткое имя, используемое программами которые требуют раннего 8.3 соглашения об именах файлов.

ShortPath

Возвращает короткий путь, используемый программами, которые требуют раннего 8.3 соглашения об именах файлов.

Size

Возвращает размер, в байтах, указанного файла или папки.

SubFolders

Возвращает коллекцию Folders, содержащую все папки, содержащиеся в указанной папке, включая папки с атрибутами "скрытый" и "системный".

TotalSize

Возвращает полный размер, в байтах, диска или сетевого ресурса.

Type

Возвращает информацию о типе файла или папки.

VolumeName

Устанавливает или возвращает имя тома указанного диска.

Add (Метод)

Описание


Добавляет новый объект Folder в коллекцию Folders.

Синтаксис:


object.Add (folderName)

Метод Add имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя коллекции Folders.

folderName

Обязателен. Имя нового объекта Folder, который добавляется.

Пример:


function AddNewFolder(path,folderName)
{
  var fso, f, fc, nf;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder(path);
  fc = f.SubFolders;
  if (folderName != "" )
    nf = fc.Add(folderName);
  else
    nf = fc.Add("New Folder");
}

Если folderName уже существует, возникает ошибка.

AtEndOfLine (свойство)

Описание


Возвращает true, если указатель в файле находится непосредственно перед символом конца строки вTextStream файле; false если нет. Доступен толко для чтения.

Синтаксис:


object.AtEndOfLine

object всегда имя объектаTextStream.

Замечание:


Свойство AtEndOfLine применяется только для TextStream файлов, окрытых для чтения; иначе, возникает ошибка.

Пример:


function GetALine(filespec)
{
  var fso, a, s, ForReading;
  ForReading = 1, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  a = fso.OpenTextFile(filespec, ForReading, false);
  while (!a.AtEndOfLine)
  {
    s += a.Read(1);
  }
  a.Close( );
  return(s);
}

AtEndOfStream (свойство)

Описание:


Возвращает true, если указатель в файле находится в конце TextStream файла; false если нет. Доступен только для чтения.

Синтаксис:


object.AtEndOfStream

object всегда имя объекта TextStream.

Замечание:


Свойство AtEndOfStream применяется только для файлов TextStream , открытых для чтения, иначе возникает ошибка.

Пример:


function GetALine(filespec)
{
  var fso, f, s, ForReading;
  ForReading = 1, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.OpenTextFile(filespec, ForReading, false);
  while (!f.AtEndOfStream)
    s += f.ReadLine( );
  f.Close( );
  return(s);
}
Attributes (свойство)

Устанавливает или возвращает аттрибуты файла или папки. Доступен для записи/чтения или только для чтения, в зависимости от аттрибута.

Синтаксис


object.Attributes [= newattributes]

свойство Attributes содержит следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта File или Folder.

newattributes

Необязательный. Если задан, то newattributes - это новое значение для аттрибутов указанного объекта object.

Настройки


Аргумент newattributes может иметь любое из следующих значений или любую их логическую комбинацию:

Константа Значение Описание
Normal 0 Обыкновенный файл. Ни один аттрибут не устанавливается.
ReadOnly 1 Файл только для чтения. Аттрибут доступен для чтения/записи.
Hidden 2 Скрытый файл. Аттрибут доступен для чтения/записи.
System 4 Системный файл. Аттрибут доступен для чтения/записи.
Volume 8 Метка тома дискового устройства. Аттрибут доступен только для чтения.
Directory 16 Папка или каталог. Аттрибут доступен только для чтения.
Archive 32 Файл изменен со дня последнего резервного копирования. Аттрибут доступен для чтения/записи.
Alias 64 Ссылка или ярлык. Аттрибут доступен только для чтения.
Compressed 128 Сжатый файл. Аттрибут доступен только для чтения.

Пример


function ToggleArchiveBit(filespec)
{
  var fso, f, r, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec)
  if (f.attributes && 32)
  {
    f.attributes = f.attributes - 32;
    s = "Архивный бит очищен.";
  }
  else
  {
    f.attributes = f.attributes + 32;
    s =  "Архивный бит установлен.";
  }
  return(s);
}

AvailableSpace (свойство)

Описание


Возвращает количество свободного для пользователя места на указанном диске или сетевом ресурсе.

Синтаксис:


object.AvailableSpace

object всегда является объектом Drive.

Замечание:


Значение, возвращаемое свойством AvailableSpace, обычно совпадает со значением, возвращаемым свойством FreeSpace. Разница может быть только если компьютерная система поддерживает квоты.

Пример:


function ShowAvailableSpace(drvPath)
{
  var fso, d, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(drvPath));
  s = "Drive " + drvPath.toUpperCase() + " - ";
  s += d.VolumeName + "<br>";
  s += "Свободно на диске: " + d.AvailableSpace/1024 + " Kбайт";
  return(s);
}

BuildPath (метод)

Описание:


Добавляет имя к существующему пути.

Синтаксис:


object.BuildPath(path, name)

Синтаксис метода BuildPath имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

path

Обязателен. Существующий путь, к которому добавляется name. Путь может быть абсолютным или относительным и не нуждается в указании существующего каталога.

name

Обязателен. Имя присоединяемое к существующему пути path.

Замечание:


Метод BuildPath вставляет дополнительный разделитель пути между существующим путем и именем, если это необходимо.

Пример:


function GetBuildPath(path)
{
  var fso, newpath;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  newpath = fso.BuildPath(path, "New  Folder");
  return(newpath);
}  

Close (метод)

Описание


Закрывает открытый TextStream файл.

Синтаксис


object.Close();

object всегда имя объектаTextStream.

Пример:


var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("Это проверка.");
a.Close();

Column (свойство)

Описание


Возвращает номер колонки текущей символьной позиции в TextStream файле.

Синтаксис:


object.Column

object всегда имя объекта TextStream.

Замечание:


После записи символа новой строки, но до записи любого другого символа, Column равен 1.

Пример:


function GetColumn()
{
  var fso, f, m;
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
  f.Write("Hello World!");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  m = f.ReadLine();
  return(f.Column);
}

Copy (метод)

Описание:


Копирует указанный файл или папку из одного местоположения в другое..

Синтаксис:


object.Copy( destination[, overwrite] );

Синтаксис метода Copy имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта File или Folder.

destination

Обязателен. Путь, куда должен быть скопирован файл или папка. Маски не допускаются.

overwrite

Необязателен. Логическое значение равное True (по умолчанию) - существующие папки или файлы перезаписываются; False - не перезаписываются.

Замечание:


Результаты действия метода Copy на объект File или Folder идентичны использованию методов FileSystemObject.CopyFile или FileSystemObject.CopyFolder где файл или папка, над которыми производится операция, определяются с помощью object передаваемого как Аргумент. Однако следует помнить, что альтернативные методы способны копировать несколько файлов или папок.

Пример:


var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("Это проверка.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Copy("c:\\windows\\desktop\\test2.txt");

CopyFile (метод)

Описание


Копирует один или несколько файлов из одного местоположения в другое.

Синтаксис:


object.CopyFile ( source, destination[, overwrite] )

Синтаксис метода CopyFile имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. object всегда имя объекта FileSystemObject.

source

Обязателен. Символьная строка указывающая на копируемый файл, которая может содержать маски, для копирования одного или нескольких файлов.

destination

Обязателен. Символьная строка, определяющая куда будут скопирован файл или файлы source. Использование масок не допустимо.

overwrite

Необязателен. Логическое значение, определяющие будут ли перезаписаны файлы. Если true, будут; если false - нет. По умолчанию принимается true. Следует помнить, что CopyFile не выполнится, если destination файлы имеют аттрибут "только для чтения", независимо от значения overwrite.

Замечание:


Маски могут быть использованы только в последней компоненте пути аргумента source . Например, можно писать:

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\letters\\*.doc", "c:\\tempfolder\\")

Но нельзя писать:

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\*\\R1???97.xls", "c:\\tempfolder")

Если source содержит маски или destination заканчивается разделителем пути (\), считается, что destination - существующая папка, в которую копируются все совпадающие с шаблоном файлы. Иначе, destination считается именем файла, который необходимо создать. В любом случае, при копировании отдельного файла могут быть три ситуации:

  • Если destination не существует, source копируется. Это обычный случай.
  • Если destination является существующим файлом, возникает ошибка, если overwrite равен false. Иначе, происходит попытка записать source поверх существующего файла.
  • Если destination является каталогом, возникает ошибка.
Ошибка также возникает, если source используя маски не совпадает ни с одним файлом. Метод CopyFile останавливается при первой ошибке. Не делается никаких попыток вернуться назад или отменить любые изменения сделанные перед возникновением ошибки.
CopyFolder (метод)

Описание


Рекурсивно копирует один или несколько каталогов из одного местоположения в другое.

Синтаксис:


object.CopyFolder ( source, destination[, overwrite] )

Синтаксис метода CopyFolder имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. object всегда имя объекта FileSystemObject.

source

Обязателен. Символьная строка указывающая на копируемую папку, которая может содержать маски, для копирования одной или нескольки папок.

destination

Обязателен. Символьная строка, определяющая куда будут скопирована папка и подкаталоги source. Использование масок не допустимо.

overwrite

Необязателен. Логическое значение, определяющие будут ли перезаписаны папки. Если true, будут; если false - нет. По умолчанию принимается true.

Замечание:


Маски могут быть использованы только в последней компоненте пути аргумента source . Например, можно писать:

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\mydocuments\\letters\\*", "c:\\tempfolder\\")

Но нельзя писать:

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\mydocuments\\*\\*", "c:\\tempfolder\\")

Если source содержит маски или destination заканчивается разделителем пути (\), считается, что destination - существующая папка, в которую копируются все совпадающие с шаблоном папки и подкаталоги. Иначе, destination считается именем папки, которую необходимо создать. В любом случае, при копировании отдельной папки могут быть четыре ситуации:

  • Если destination не существует, source и все его содержимое копируется. Это обычный случай.
  • Если destination является существующим файлом, возникает ошибка.
  • Если destination является каталогом, производится попытка скопировать папку и все ее содержимое. Если файл, содержащийся в source уже есть в destination, возникает ошибка, если overwrite равен false. Иначе, происходит попытка записать файл поверх существующего файла.
  • Если destination является каталогом только для чтения, возникает ошибка, если производится попытка записать существующий файл "только для чтения" в этот каталог, а overwrite равен false.
Ошибка также возникает, если source используя маски не совпадает ни с одним каталогом. Метод CopyFolder останавливается при первой ошибке. Не делается никаких попыток вернуться назад или отменить любые изменения, сделанные перед возникновением ошибки.
CreateFolder (метод)

Описание


Создает папку.

Синтаксис


object.CreateFolder(foldername)

Метод CreateFolder имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

foldername

Обязателен. Строковое выражение определяещее имя создаваемого каталога.

Замечание


Если указанный каталог уже существует, возникает ошибка.

Пример


var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateFolder("c:\\new folder");

CreateTextFile (метод)

Описание


Создает указанное имя файла и возвращает объект TextStream, который может быть использован для чтения или записи в файл.

Синтаксис


object.CreateTextFile(filename[, overwrite[, unicode]])

Синтаксис метода CreateTextFile имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject или объекта Folder.

filename

Обязателен. Строковое выражение, определяющее создаваемый файл.

overwrite

Необязателен. Логическое значение, определяющее можно ли перезаписать существующий файл. Если его значение true можно, false - нет. Если пропущен, существующие файлы не перезаписываются.

unicode

Необязателен. Логическое значение, определяющее создается Unicode или ASCII файл. Если значение true - Unicode файл, false - ASCII файл. Если пропущен, создается ASCII файл.

Пример


var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("Это проверка.");
a.Close();

Если Аргумент overwrite равен false, или не задан, для существующего файла filename возникает ошибка.

DateCreated (свойство)

Описание


Возвращает дату и время создания указанного файла или папки. Доступен только для чтения.

Синтаксис


object.DateCreated

object - всегда объект File или Folder.

Пример


function ShowFileInfo(filespec)
{
  var fso, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec);
  s = "Created: " + f.DateCreated;
  return(s);
}

DateLastAccessed (свойство)

Описание


Возвращает дату и время последнего обращения к указанному файлу или папке. Доступен только для чтения.

Синтаксис


object.DateLastAccessed

object - всегда объект File или Folder.

Пример


function ShowFileAccessInfo(filespec)
{
  var fso, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec);
  s = filespec.toUpperCase() + "<br>";
  s += "Создан: " + f.DateCreated + "<br>";
  s += "Доступ осуществлен: " + f.DateLastAccessed + "<br>";
  s += "Файл модифицирован: " + f.DateLastModified;
  return(s);
}


Важно   Поведение данногго метода зависит от операционной системы. Если система не поддерживает предоставление информации о времени, ничего не будет возвращено.

DateLastModified (свойство)

Описание


Возвращает дату и время последнего изменения указанного файла или папки. Доступен только для чтения.

Синтаксис


object.DateLastModified

object - всегда объект File или Folder.

Пример


function ShowFileAccessInfo(filespec)
{
  var fso, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec);
  s = filespec.toUpperCase() + "<br>";
  s += "Создан: " + f.DateCreated + "<br>";
  s += "Доступ осуществлен: " + f.DateLastAccessed + "<br>";
  s += "Файл модифицирован: " + f.DateLastModified;
  return(s);
}

Delete (метод)

Описание


Удаляет указанный файл или папку.

Синтаксис


object.Delete( force );

Синтаксис метода Delete имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта File или Folder.

force

Необязателен. Логическое значение, устанавливаемое в True если необходимо удалять файлы и папки с аттрибутом "только для чтения"; False (по умолчанию) - не удалять.

Замечание


Если указанный файл или папка не существуют, возникает ошибка.

Результат действия метода Delete на объекты File или Folder идентичен методам FileSystemObject.DeleteFile или FileSystemObject.DeleteFolder.

Метод Delete не различает каталоги имеющие и не имеющие содержимое. Указанный каталог удаляется независимо от того, имеет он содержимое или нет.

Пример


var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("Это проверка.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Delete();

DeleteFile (метод)

Описание


Удаляет указанный файл.

Синтаксис


object.DeleteFile ( filespec[, force] );

Синтаксис метода DeleteFile имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

filespec

Обязателен. Имя удаляемого файла. filespec может содержать маски в последней компоненте пути.

force

Необязателен. Логическое значение равное true если файлы с аттрибутами "только для чтения" должны быть удалены; false (по умолчанию) не должны быть удалены.

Замечание


Если нет файлов совпадающих с шаблоном, возникает ошибка. Метод DeleteFile останавливается на первой ошибке. Не делается попыток вернуться обратно или отменить изменения произошедшие перед возникновением ошибки.

Пример


function DeleteFile(filespec)
{
  var fso;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  fso.DeleteFile(filespec);
}

DeleteFolder (метод)

Описание


Удаляет указанную папку и ее содержимое.

Синтаксис


object.DeleteFolder ( folderspec[, force] );

Синтаксис метода DeleteFolder имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

folderspec

Обязателен. Имя удаляемого каталога. folderspec может содержать маски в последней компоненте пути.

force

Необязателен. Логическое значение, устанавливаемое в true если каталоги с аттрибутом "только для чтения" должны быть удалены; false (по умолчанию) если не должны быть удалены.

Замечание


Метод DeleteFolder не различает каталоги, имеющие и не имеющие содержимое. Каталог удаляется независимо от того, имеет он содержимое или нет.

Если не найдены папки совпадающие с шаблоном, возникает ошибка. Метод DeleteFolder останавливается при первой ошибке. Не делается попыток вернуться обратно или отменить изменения произошедшие перед возникновением ошибки.

Пример


function DeleteFolder(folderspec)
{
  var fso;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  fso.DeleteFolder(folderspec);
}

Drive (объект)

Описание


Обеспечивает доступ к свойствам определенного диска или сетевого ресурса.

Пример


function ShowFreeSpace(drvPath)
{
    var fso, d, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    d = fso.GetDrive(fso.GetDriveName(drvPath));
    s = "Диск " + drvPath + " - " ;
    s += d.VolumeName + "<br>";
    s += "Свободного пространства: " + d.FreeSpace/1024 + " Kbytes";
    return(s);
}

Drive (свойство)

Описание


Возвращает букву диска, на котором находится указанный файл или папка. Доступен только для чтения.

Синтаксис


object.Drive

object всегда имя объекта File или Folder.

Пример


function ShowFileAccessInfo(filespec)
{
  var fso, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec);
  s = f.Name + " on Drive " + f.Drive + "<br>";
  s += "Создан: " + f.DateCreated + "<br>";
  s += "Доступ произведен: " + f.DateLastAccessed + "<br>";
  s += "Модифицирован: " + f.DateLastModified;
  return(s);
}

DriveExists (метод)

Описание


Возвращает True, если указанный диск существует; False - если нет.

Синтаксис


object.DriveExists(drivespec)

Синтаксис метода DriveExists имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

drivespec

Обязателен. Буква диска или полный путь.

Замечание


Для устройств со сменным носителем, метод DriveExists возвращает true даже если носитель отсутствует. Следует использовать свойство IsReady объекта Drive для определения готовности дискового устройства.

Пример


function ReportDriveStatus(drv)
{
  var fso, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  if (fso.DriveExists(drv))
    s += "Drive " + drv + " существует.";
  else 
    s += "Drive " + drv + " не существует.";
  return(s);
}

DriveLetter (свойство)

Описание


Возвращает букву диска физического устройства или сетевого ресурса. Доступен только для чтения.

Синтаксис


object.DriveLetter

object всегда объект Drive.

Замечание


Свойство DriveLetter возвращает строку нулевой длины (""), если указанный диск не ассоциирован с буквой диска, например, сетевой ресурс, не ассоциированный с буквой диска.

Пример


function ShowDriveLetter(drvPath)
{
  var fso, d, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(drvPath));
  s = "Диск " + d.DriveLetter.toUpperCase( ) + ": - ";
  s += d.VolumeName + "<br>";
  s += "Свободного пространства: " + d.AvailableSpace/1024 + " Kbytes";
  return(s);
}

Drive (коллекция)

Описание


Коллекция всех доступных дисков (только для чтения).

Замечание


Устройства со сменными носителями не требуют присутствия носителя, чтобы находиться в коллекции Drives

Пример


function ShowDriveList()
{
  var fso, s, n, e, x;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  e = new Enumerator(fso.Drives);
  s = "";
  for (; !e.atEnd(); e.moveNext())
  {
    x = e.item();

    s = s + x.DriveLetter;
    s += " - ";
    if (x.DriveType == 3)
      n = x.ShareName;
    else if (x.IsReady)
      n = x.VolumeName;
    else
      n = "[Диск не готов]";
    s +=  n + "<br>";
  }
  return(s);
}

Drives (свойство)

Описание


Возвращает коллекцию Drives, содержащую все объекты Drive, доступные на локальной машине.

Синтаксис


object.Drives

object всегда объект FileSystemObject.

Замечание


Устройства со сменными носителями не требуют присутствия носителя, чтобы находиться в коллекции Drives.

Можно переходить от одного элемента к следующему в коллекции Drives, используя объект Enumerator и оператор for:

Пример


function ShowDriveList()
{
  var fso, s, n, e, x;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  e = new Enumerator(fso.Drives);
  s = "";
  for (; !e.atEnd(); e.moveNext())
  {
    x = e.item();
    s = s + x.DriveLetter;
    s += " - ";
    if (x.DriveType == 3)
      n = x.ShareName;
    else if (x.IsReady)
      n = x.VolumeName;
    else
      n = "[Диск не готов]";
    s +=  n + "<br>";
  }
  return(s);
}

[an error occurred while processing this directive]
DriveType (свойство)

Описание


Возвращает значение, отражающее тип указанного диска.

Синтаксис


object.DriveType

object всегда объект Drive.

Пример


function ShowDriveType(drvpath)
{
  var fso, d, s, t;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(drvpath);
  switch (d.DriveType)
  {
    case 0: t = "Неизвестный"; break;
    case 1: t = "Сменный"; break;
    case 2: t = "Жесткий"; break;
    case 3: t = "Сетевой"; break;
    case 4: t = "CD-ROM"; break;
    case 5: t = "Виртуальный RAM Диск"; break;
  }	
  s = "Диск " + d.DriveLetter + ": - " + t;
  return(s);
}

File (объект)

Описание


Обеспечивает доступ ко всем свойствам файла.

Пример


function ShowFileInfo(filespec)
{
  var fso, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec);
  s = f.DateCreated;
  return(s);
}

FileExists (метод)

Описание


Возвращает True, если указанный файл существует; False - если нет.

Синтаксис


object.FileExists(filespec)

Синтаксис метлода FileExists имеет следующие аргументы:

аргументы

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

filespec

Обязателен. Имя файла, существование которого проверяется. Полный путь (абсолютный или относительный) должен задаваться, если проверяется существование файла не в текущем каталоге.

Пример


function ReportFileStatus(filespec)
{
  var fso, s = filespec;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  if (fso.FileExists(filespec))
    s += " существует.";
  else 
    s += " не существует.";
  return(s);
}

Files (коллекция)

Описание


Коллекция всех объектов File внутри папки.

Пример


function ShowFolderFileList(folderspec)
{
  var fso, f, f1, fc, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder(folderspec);
  fc = new Enumerator(f.files);
  s = "";
  for (; !fc.atEnd(); fc.moveNext())
  {
      s += fc.item();
      s += "<br>";
  }
  return(s);
}

Files (свойство)

Описание


Возвращает коллекцию Files, состоящую из всех объектов File, содержащихся в указанной папке, включая файлы с аттрибутами "скрытый" и "системный".

Синтаксис


object.Files

object всегда объект Folder.

Пример


function ShowFolderFileList(folderspec)
{
  var fso, f, fc, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder(folderspec);
  fc = new Enumerator(f.files);
  s = "";
  for (; !fc.atEnd(); fc.moveNext())
  {
    s += fc.item();
    s += "<br>";
  }
  return(s);
}

FileSystemObject (объект)

Описание


Обеспечивает доступ к файловой системе компьютера.

Синтаксис


y = new ActiveXObject("Scripting.FileSystemObject")

Пример


var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("Это проверка.");
a.Close();

В примере, объект ActiveXObject присваивается FileSystemObject (fso). Затем метод CreateTextFile создает файл как объект TextStream (a), а метод WriteLine Записывает строку текста в файл. Метод Close закрывает файл.

FileSystem (свойство)

Описание


Возвращает тип файловой системы, используемой на указанном диске.

Синтаксис


object.FileSystem

object всегда объект Drive.

Замечание


Доступные возвращаемые типы FAT, NTFS, и CDFS.

Пример


function ShowFileSystemType(drvPath)
{
  var fso,d, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(drvPath);
  s = d.FileSystem;
  return(s);
}

Folder (объект)

Описание


Обеспечивает доступ ко всем свойствам папки.

Пример


function ShowFolderInfo(folderspec)
{
  var fso, folder, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  folder = fso.GetFolder(folderspec);
  s = folder.DateCreated;
  return(s);
}

Folders (коллекция)

Описание


Коллекция всех объектов Folder, содержащихся внутри определенного объекта Folder.

Пример


function ShowFolderList(folderspec)
{
  var fso, f, fc, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder(folderspec);
  fc = new Enumerator(f.SubFolders);
  s = "";
  for (; !fc.atEnd(); fc.moveNext())
  {
    s += fc.item();
    s += "<br>";
  }
  return(s);
}

FolderExists (метод)

Описание


Возвращает True, если указанная папка существует; False, если нет .

Синтаксис


object.FolderExists(folderspec)

Синтаксис метода FolderExists имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

folderspec

Обязателен. Имя папки, существование которой проверяется. Полный путь (абсолютный или относительный) задается если проверяется существование папки не в текущем каталоге.

Пример


function ReportFolderStatus(fldr)
{
  var fso, s = fldr;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  if (fso.FolderExists(fldr))
    s += " существует.";
  else 
    s += " не существует.";
  return(s);
}

FreeSpace (свойство)

Описание


Возвращает количество свободного места, доступного для пользователя на указанном диске или сетевом ресурсе. Доступен только для чтения.

Синтаксис


object.FreeSpace

object всегда объект Drive.

Замечание


Значение, возвращаемое свойством FreeSpace обычно совпадает со значением, возвращаемым свойством AvailableSpace. Разница может быть только, если компьютеры используют квоты.

Пример


function ShowFreeSpace(drvPath)
{
  var fso, d, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(drvPath));
  s = "Диск " + drvPath.toUpperCase( ) + " - ";
  s += d.VolumeName + "<br>";
  s += "Свободного пространства: " + d.FreeSpace/1024 + " Kbytes";
  return(s);
}

GetAbsolutePathName (метод)

Описание


Возвращает полный и недвусмысленный путь из предоставляемого указания пути.

Синтаксис


object.GetAbsolutePathName(pathspec)

Синтаксис метода GetAbsolutePathName имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

pathspec

Обязателен. Указание пути, который необходимо преобразовать в полный и недвусмысленный путь.

Замечание


Путь полон и недвусмысленен, если он обеспечивает полную ссылку от корневого каталога на диске. Полный путь может заканчиваться символом разделителем пути (\), если он определяет корневой каталог диска.

Считая, что текущим является каталог c:\mydocuments\reports, следующая таблица иллюстрирует поведение метода GetAbsolutePathName.

pathspec

Возвращаемый путь

"c:"

"c:\mydocuments\reports"

"c:.."

"c:\mydocuments"

"c:\\"

"c:\"

"c:*.*\\may97"

"c:\mydocuments\reports\*.*\may97"

"region1"

"c:\mydocuments\reports\region1"

"c:\\..\\..\\mydocuments"

"c:\mydocuments"

Пример


function ShowAbsolutePath(path)
{
  var fso, s= "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  s += fso.GetAbsolutePathName(path);
  return(s);
}

GetBaseName (метод)

Описание


Возвращает строку, содержащую базовое имя файла (без какого-либо расширения), или папки по указанному пути.

Синтаксис


object.GetBaseName(path)

Синтаксис метода GetBaseName имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

path

Обязателен. Указание пути к компоненте, чье базовое имя должно быть возвращено.

Замечание


Метод GetBaseName возвращает строку нулевой длины (""), если ни одна компонента не удовлетворяет аргументу path.

Памятка  Метод GetBaseName работает только по указанному пути path. Он не пытается ни изменить путь, ни проверить, существует ли данный путь.

Пример


function ShowBaseName(filespec)
{
  var fso, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  s += fso.GetBaseName(filespec);
  return(s);
}

GetDrive (метод)

Описание


Возвращает объект Drive соответствующий диску по указанному пути.

Синтаксис


object.GetDrive ( drivespec );

Синтаксис метода GetDrive имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

drivespec

Обязателен. Аргумент drivespec может быть буквой диска (c), буквой диска с двоеточием (c:), буквой диска с двоеточием и символом разделителем пути (c:\), или любым сетевым путем (\\computer2\share1).

Замечание


Для сетевх ресурсов, проводится проверка на существование ресурса.

Возникает ошибка, если drivespec не соответствует одной из допустимых форм, или не существует.

Для вызова метода GetDrive с помощью обыкновенной строки с путем, следует использовать следующую последовательность, чтобы получить строку, подходящую для использования в качестве drivespec:

DriveSpec = GetDriveName(GetAbsolutePathName(Path))

Пример


function ShowFreeSpace(drvPath)
{
  var fso, d, s ="";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(drvPath));
  s = "Диск " + drvPath.toUpperCase( ) + " - ";
  s += d.VolumeName + "<br>";
  s += "Свободного пространства: " + d.FreeSpace/1024 + " Kbytes";
  return(s);
}

GetDriveName (метод)


Описание


Возвращает строку, содержащую имя диска по указанному пути.

Синтаксис


object.GetDriveName(path)

Синтаксис метода GetDriveName имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Вегда имя объекта FileSystemObject.

path

Обязателен. Указание пути к компоненте, имя диска которой должно быть возвращено.

Замечание


Метод GetDriveName возвращает строку нулевой длины (""), если диск не может быть определен.

Памятка  Метод GetDriveName работает только с указанным путем path. Он не пытается ни изменить путь, ни проверить, существует ли данный путь.

Пример


function GetDriveLetter(path)
{
  var fso, s ="";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  s += fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(path)));
  return(s);
}

GetExtensionName (метод)

Описание


Возвращает строку, содержащую расширение для последней компоненты в пути.

Синтаксис


object.GetExtensionName(path)

Синтаксис метода GetExtensionName имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

path

Обязателен. Путь к компоненте, чье расширение должно быть возвращено.

Замечание


Для сетевых дисков, корневой каталог (\) считается компонентой.

Метод GetExtensionName возвращет строку нулевой длины (""), если ни одна компонента не совпадает с аргументом path.


function ShowExtensionName(filespec)
{
  var fso, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  s += fso.GetExtensionName(filespec);
  return(s);
}

GetFile (метод)

Описание


Возвращает объект File соответствующий файлу по указанному пути.

Синтаксис


object.GetFile(filespec)

Синтаксис метода GetFile имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

filespec

Обязателен. filespec - это путь (абсолютный или относительный) к указанному файлу.

Замечание


Возникает ошибка, если указанный файл не существует.

Пример


function ShowFileAccessInfo(filespec)
{
  var fso, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec);
  s = f.Path.toUpperCase() + "<br>";
  s += "Создан: " + f.DateCreated + "<br>";
  s += "Просматривался: " + f.DateLastAccessed + "<br>";
  s += "Модифицировался: " + f.DateLastModified  
  return(s);
}

GetFile (метод)

Описание


Возвращает последнее имя файла или папки по указанному пути который не является спецификацией диска.

Синтаксис


object.GetFileName(pathspec)

Синтаксис метода GetFileName имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

pathspec

Обязателен. Путь (абсолютный или относительный) к указанному файлу.

Замечание


Метод GetFileName возвращает строку нулевой длины (""), если Аргумент pathspec не заканчивается указанной компонентой.

Памятка  Метод GetFileName работает только по указанному пути. Он не пытается ни изменить путь, ни проверить, существует ли данный путь.

Пример


function ShowFileName(filespec)
{
  var fso, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  s += fso.GetFileName(filespec);
  return(s);
}

GetFile (метод)

Описание


Возвращает объект Folder соответствующий папке по указанному пути.

Синтаксис


object.GetFolder(folderspec)

Синтаксис метода GetFolder имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

folderspec

Обязателен. folderspec - это путь (абсолютный или относительный) к указанной папке.

Замечание


Возникает ошибка, если указанная папка не существует.

Пример


function ShowFolderList(folderspec)
{
  var fso, f, fc, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder(folderspec);
  fc = new Enumerator(f.SubFolders);
  s = "";
  for (; !fc.atEnd(); fc.moveNext())
  {
    s += fc.item();
    s += "<br>";
  }
  return(s);
}

GetParentFolderName (метод)

Описание


Возвращает строку, содержащую имя корневого каталога последнего файла или папки указанных в пути.

Синтаксис


object.GetParentFolderName(path)

Синтаксис метода GetParentFolderName имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

path

Обязателен. Путь к компоненте, корневой каталог которой должен быть возвращен.

Замечание


Метод GetParentFolderName возвращает строку нулевой длины (""), если для указанной компоненты нет корневого каталога.

Памятка  Метод GetParentFolderName работает только по указанному пути. Он не пытается ни изменить путь, ни проверить, существует ли данный путь.

Пример


function ShowParentFolderName(filespec)
{
 var fso, s = "";
 fso = new ActiveXObject("Scripting.FileSystemObject");
 s += fso.GetParentFolderName(filespec);
 return(s);
}

GetSpecialFolder (метод)

Описание


Возвращает объект указанной специальной папки.

Синтаксис


object.GetSpecialFolder(folderspec)

Синтаксис метода GetSpecialFolder имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

folderspec

Обязателен. Имя специальной папки, которая должна быть возвращена. Может быть любой из констант, перечисленных ниже в установках.

Установки


Аргумент folderspec может иметь любое из следующих значений:

Константа Значение Описание
WindowsFolder 0 Папка Windows содержит файлы, установленные операционной системой Windows.
SystemFolder 1 Папка System содержит библиотеки, шрифты, и драйверы устройств.
TemporaryFolder 2 Папка Temp используется для хранения временных файлов. Ее путь находится в переменной окружения TMP.

Пример


var fso, tempfile;
fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFile()
{
  var tfolder, tfile, tname, fname, TemporaryFolder = 2;
  tfolder = fso.GetSpecialFolder(TemporaryFolder);
  tname = fso.GetTempName();
  tfile = tfolder.CreateTextFile(tname);
  return(tfile);
}
tempfile = CreateTempFile();
tempfile.writeline("Hello World");
tempfile.close();

GetTempName (метод)

Описание


Возвращает случайно сгенерированное имя временного файла или папки, который полезен для выполнения операций, требующих временного файла или папки.

Синтаксис


object.GetTempName ( );

object всегда имя объекта FileSystemObject.

Замечание


Метод GetTempName не создает файл. Он обеспечивает только имя временного файла, которое может быть использовано с CreateTextFile для создания файла.

Пример


var fso, tempfile;
fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFile()
{
  var tfolder, tfile, tname, fname, TemporaryFolder = 2;
  tfolder = fso.GetSpecialFolder(TemporaryFolder);
  tname = fso.GetTempName();
  tfile = tfolder.CreateTextFile(tname);
  return(tfile);
}
tempfile = CreateTempFile();
tempfile.writeline("Hello World");
tempfile.close();

IsReady (свойство)

Описание


Возвращает True, если указанный диск готов к работе; False, если нет.

Синтаксис


object.IsReady

object всегда объект Drive.

Замечание


Для устройств со сменным носителем и приводов CD-ROM, IsReady возвращает True только если носитель находится в устройстве и готов к доступу.

Пример


function ShowDriveInfo(drvpath)
{
  var fso, d, s, t;
  fso = new ActiveXObject("Scripting.FileSystemObject")
  d = fso.GetDrive(drvpath)
  switch (d.DriveType)
  {
    case 0: t = "Неизвестный"; break;
    case 1: t = "Сменный"; break;
    case 2: t = "Жесткий"; break;
    case 3: t = "Сетевой"; break;
    case 4: t = "CD-ROM"; break;
    case 5: t = "Виртуальный RAM-диск"; break;
  }	
  s = "Диск " + d.DriveLetter + ": - " + t;
  if (d.IsReady)
    s += "<br>" + "Диск готов.";
  else
    s += "<br>" + "Диск не готов.";
  return(s);
}

IsRootFolder (свойство)

Описание


Возвращает True, если указанная папка является корневой; False, если нет.

Синтаксис


object.IsRootFolder

object всегда объект Folder.

Пример


function DisplayLevelDepth(pathspec)
{
  var fso, f, n, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder(pathspec);
  n = 0;
  if (f.IsRootFolder)
      s = "Указанный каталог является корневым."
  else
  {
    do
    { 
      f = f.ParentFolder;
      n++;
    }
    while (!f.IsRootFolder)
    s = "Глубина данного каталога " + n + " уровней."
  }
  return(s);
}

Line (свойство)

Описание


Возвращает текущий номер строки в файле TextStream.

Синтаксис


object.Line

object всегда имя объекта TextStream.

Замечание


После того как файл первоначально открыт, и до того как в него что-либо записано, Line равен 1.

Пример


function GetLine()
{
  var fso, f, r
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject")
  f = fso.OpenTextFile("c:\\textfile.txt", ForWriting, true)
  f.WriteLine("Hello world!");
  f.WriteLine("JScript is fun");
  f.Close();
  f = fso.OpenTextFile("c:\\textfile.txt", ForReading);
  r =  f.ReadAll();
  return(f.Line);
}

Move (метод)

Описание


Переносит указанный файл или папку из одного местоположения в другое.

Синтаксис


object.Move( destination );

Синтаксис метода Move имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объектов File или Folder.

destination

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

Замечание


Результат метода Move на объект File или Folder идентичен результату метода FileSystemObject.MoveFile или FileSystemObject.MoveFolder. Однако следует помнить, что альтернативные методы способны перемещать несколько файлов или каталогов.

MoveFile (метод)

Описание


Переносит один или несколько файлов из одного местоположения в другое.

Синтаксис


object.MoveFile ( source, destination );

Синтаксис метода MoveFile имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

source

Обязателен. Путь к файлу или файлам, которые должны быть перенесены. Аргумент source может содержать маски только в последней компоненте пути.

destination

Обязателен. Путь, куда переносится файл или файлы. Аргумент destination не может содержать масок.

Замечание


Если source содержит маски или destination оканчивается символом разделителем пути(\), считается, что destination определяет существующий каталог, в который надо перенести совпадающие с шаблоном файлы. Иначе, destination считается именем файла, который нужно создать. В других случаях, при переносе одного файла могут случиться три ситуации:

  • Если destination не существует, файл переносится. Это обычный случай.
  • Если destination - существующий файл, возникает ошибка.
  • Если destination - каталог, возникает ошибка.
Ошибка также возникает, если маска, используемая в source не совпадает ни с одним файлом. Метод MoveFile останавливается при первой ошибке. Не делается никаких попыток вернуться назад или отменить любые изменения сделанные перед возникновением ошибки.

Важно  Метод позволяет переносить файлы между томами, только если это поддерживается операционной системой.

Пример


function MoveFile2Desktop(filespec)
{
  var fso;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  fso.MoveFile(filespec, "c:\\windows\\desktop\\);
}

MoveFolder (метод)

Описание


Переносит один или несколько каталогов из одного местоположения в другое.

Синтаксис


object.MoveFolder ( source, destination );

Синтаксис метода MoveFolder имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта FileSystemObject.

source

Обязателен. Путь к папке или папкам, которые должны быть перенесены. Аргумент source может содержать маски только в последней компоненте пути.

destination

Обязателен. Путь, куда переносится папка или папки. Аргумент destination не может содержать масок.

Замечание


Если source содержит маски или destination оканчивается символом разделителем пути(\), считается, что destination определяет существующий каталог, в который надо перенести совпадающие с шаблоном папки. Иначе, destination считается именем папки, которую нужно создать. В других случаях, при переносе одного каталога могут случиться три ситуации:

  • Если destination не существует, каталог переносится. Это обычный случай.
  • Если destination - существующий файл, возникает ошибка.
  • Если destination - каталог, возникает ошибка.
Ошибка также возникает, если маска, используемая в source не совпадает ни с одним каталогом. Метод MoveFolder останавливается при первой ошибке. Не делается никаких попыток вернуться назад или отменить любые изменения сделанные перед возникновением ошибки.

Важно  Метод позволяет переносить папки между томами, только если это поддерживается операционной системой.

Пример


function MoveFldr2Desktop(fldrspec)
{
  var fso;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  fso.MoveFolder(fldrspec, "c:\\windows\\desktop\\");
}
}

MoveFolder (метод)

Описание


Устанавливает или возвращает имя указанного файла или папки. Доступен для чтения/записи.

Синтаксис


object.Name [= newname]

Свойство Name имеет следующие аргументы:

аргументы

Описание

object

Обязателен. Всегда имя объекта File или Folder.

newname

Необязателен. Если указан, newname - новое имя указанного объекта object.

Пример


function ShowFileAccessInfo(filespec)
{
    var fso, f, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f = fso.GetFile(filespec);
    s = f.Name + " на Диске " + f.Drive + "<br>";
    s += "Создан: " + f.DateCreated + "<br>";
    s += "Просмотрен: " + f.DateLastAccessed + "<br>";
    s += "Модифицирован: " + f.DateLastModified;
    return(s);
}

OpenAsTextStream (метод)

Описание


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

Синтаксис


object.OpenAsTextStream([iomode, [format]])

Синтаксис метода OpenAsTextStream имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта File.

iomode

Необязателен. Отражает режим ввода/вывода. Может быть одним из трех констант: ForReading, ForWriting, или ForAppending.

format

Необязателен. Используется одно из трех Tristate значений, для отражения формата открываемого файла. Если пропущен, файл открывается как ASCII.

Установки


Аргумент iomode может иметь любое из следующих значений:

Константа Значение Описание
ForReading 1 Открытие файла только для чтения. Нельзя писать в данный файл.
ForWriting 2 Открытие файла для записи. Если файл с указанным именем уже существует, его содержимое перезаписывается.
ForAppending 8 Открытие файла и дозапись в его конец.

Аргумент format может иметь любое из следующих значений:

Константа Значение Описание
TristateUseDefault -2 Открывает файл в формате по умолчанию.
TristateTrue -1 Открывает файл в формате Unicode.
TristateFalse  0 Открывает файл в формате ASCII.

Замечание


Метод OpenAsTextStream обеспечивает ту же функциональность, что и метод OpenTextFile из FileSystemObject. Кроме того, метод OpenAsTextStream может быть использован для записи в файл.

Пример


function TextStreamTest( )
{
    var fso, f, ts, s;
    var ForReading = 1, ForWriting = 2, ForAppending = 8;
    var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fso.CreateTextFile( "test1.txt" );           // Create a file.
    f = fso.GetFile("test1.txt");
    ts = f.OpenAsTextStream(ForWriting, TristateUseDefault);
    ts.Write( "Hello World" );
    ts.Close( );
    ts = f.OpenAsTextStream(ForReading, TristateUseDefault);
    s = ts.ReadLine( );
    ts.Close( );
    return(s);
}

OpenTextFile (метод)

Описание


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

Синтаксис


object.OpenTextFile(filename[, iomode[, create[, format]]])

Синтаксис метода OpenTextFile имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Object всегда имя объекта FileSystemObject.

filename

Обязателен. Строковое выражение, определяющее открываемый файл.

iomode

Необязателен. Отражает режим ввода/вывода. Может быть одним из трех констант: ForReading, ForWriting, или ForAppending.

create

Необязателен. Логическое значение, отражающее, будет ли создаваться новый файл, если указанный в filename файл не существует. Значение True если будет создаваться, False - если нет. Если пропущен, новый файл не создается.

format

Необязателен. Используется одно из трех Tristate значений, для отражения формата открываемого файла. Если пропущен, файл открывается как ASCII.

Установки


Аргумент iomode может иметь любое из следующих значений:

Константа Значение Описание
ForReading 1 Открытие файла только для чтения. Нельзя писать в данный файл.
ForWriting 2 Открытие файла для записи. Если файл с указанным именем уже существует, его содержимое перезаписывается.
ForAppending 8 Открытие файла и дозапись в его конец.

Аргумент format может иметь любое из следующих значений:

Константа Значение Описание
TristateUseDefault -2 Открывает файл в формате по умолчанию.
TristateTrue -1 Открывает файл в формате Unicode.
TristateFalse  0 Открывает файл в формате ASCII.

Пример


var fs, a, ForAppending;
ForAppending = 8;
fs = new ActiveXObject("Scripting.FileSystemObject");
a = fs.OpenTextFile("c:\\testfile.txt", ForAppending, false);
...
a.Close();

ParentFolder (свойство)

Описание


Возвращает объект Folder корневого для указанного файла или папки каталога. Доступен только для чтения.

Синтаксис


object.ParentFolder

object всегда объект File или Folder.

Пример


function ShowFileAccessInfo(filespec)
{
    var fso, f, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f = fso.GetFile(filespec);
    s = f.Name + " in " + f.ParentFolder + "<br>";
    s += "Создан: " + f.DateCreated + "<br>";
    s += "Просмотрен: " + f.DateLastAccessed + "<br>";
    s += "Модифицирован: " + f.DateLastModified; 
    return(s);
}

Path (свойство)

Описание


Возвращает путь для указанного файла, папки или диска.

Синтаксис


object.Path

object всегда объект File, Folder, или Drive.

Замечание


Для букв дисков, корневой каталог не включается. Например, путь к диску C - C:, а не C:\.

Пример


function ShowFileAccessInfo(filespec)
{
  var fso, d, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFile(filespec);
  s = f.Path.toUpperCase() + "<br>";
  s += "Создан: " + f.DateCreated + "<br>";
  s += "Просмотрен: " + f.DateLastAccessed + "<br>";
  s += "Модифицирован: " + f.DateLastModified  
  return(s);
}

Read (метод)

Описание


Читает указанное количество символов из TextStream файла и возвращает результирующую строку.

Синтаксис


object.Read(characters)

Синтаксис метода Read имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя TextStream объекта.

characters

Обязателен. Количество символов, которые необходимо прочитать из файла.

Пример


function GetHeader()
{
  var fso, f;
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
  f.Write("Header");
  f.Write("1234567890987654321");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  return(f.Read(6));
}

ReadAll (метод)

Описание


Читает весь TextStream файл и возвращает результирующую строку.

Синтаксис


object.ReadAll( );

object всегда имя объекта TextStream.

Замечание


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

Пример


function GetEverything()
{
  var fso, f;
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
  f.Write("Header");
  f.Write("1234567890987654321");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  return(f.ReadAll());
}

ReadLine (метод)

Описание


Читает всю строку (но исключая символ новой строки) из файла TextStream и возвращает результирующую строку.

Синтаксис


object.ReadLine( )

object всегда имя объекта TextStream.

Пример


function GetLine()
{
  var fso, f, r;
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
  f.WriteLine("Hello world!");
  f.WriteLine("JScript is fun");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  r =  f.ReadLine();
  return(r);
}

RootFolder (свойство)

Описание


Возвращает объект Folder представляющий корневой каталог указанного диска. Доступен только для чтения.

Синтаксис


object.RootFolder

object всегда объект Drive.

Замечание


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

Пример


function GetRootFolder(drv)
{
  var fso,d;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  if (fso.DriveExists(drv))
    {
      d = fso.GetDrive(drv);
      return(d.RootFolder);
    }
  else
    return(false);
}

SerialNumber (свойство)

Описание


Возвращает десятичный серийный номер, используемый для уникальной идентификации тома диска.

Синтаксис


object.SerialNumber

object всегда объект Drive.

Замечание


Можно использовать свойство SerialNumber для удостоверения, что в устройство со сменными носителями вставлен нужный диск.

Пример


function ShowDriveInfo(drvpath)
{
  var fso, d, s, t;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
  switch (d.DriveType)
  {
    case 0: t = "Неизвестный"; break;
    case 1: t = "Сменный"; break;
    case 2: t = "Жесткий"; break;
    case 3: t = "Сетевой"; break;
    case 4: t = "CD-ROM"; break;
    case 5: t = "Виртуальный RAM диск"; break;
  }	
  s = "Диск " + d.DriveLetter + ": - " + t;
  s += "<br>" + "SN: " + d.SerialNumber;
  return(s);
}

ShareName (свойство)

Описание


Возвращает сетевое имя ресурса для указанного диска.

Синтаксис


object.ShareName

object всегда объект Drive.

Замечание


Если object не является сетевым диском, свойство ShareName возвращает строку нулевой длины ("").

Пример


function ShowDriveInfo(drvpath)
{
  var fso, d, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
  s = "Диск " + d.DriveLetter + ": - " + d.ShareName;
  return(s);
}

ShortName (свойство)

Описание


Возвращает короткое имя, используемое программами которые требуют раннего 8.3 соглашения об именах файлов.

Синтаксис


object.ShortName

object всегда объект File или Folder.

Пример


function ShowShortName(filespec)
{
    var fso, f, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f = fso.GetFile(filespec);
    s = "Короткое имя для " + "" + f.Name;
    s += "" + "<br>";
    s += ": " + "" + f.ShortName + "";
    return(s);
}

ShortPath (свойство)

Описание


Возвращает короткий путь, используемый программами которые требуют раннего 8.3 соглашения об именах файлов.

Синтаксис


object.ShortPath

object всегда объект File или Folder.

Пример


function ShowShortPath(filespec)
{
    var fso, f, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f = fso.GetFile(filespec);
    s = "Короткий путь для " + "" + f.Name;
    s += "" + "
";
    s += ": " + "" + f.ShortPath + "";
    return(s);
}

Size (свойство)

Описание


Для файлов, возвращает размер в байтах, указанного файла. Для каталогов, возвращает размер в байтах всех файлов и подкаталогов заданной папки.

Синтаксис


object.Size

object всегда объект File или Folder.

Пример


function ShowFolderSize(filespec)
{
    var fso, f, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f = fso.GetFolder(filespec);
    s = f.Name + " занимает " + f.size + " байт.";
    return(s);
}

Skip (метод)

Описание


Пропускает указанное количество символов во время чтения TextStream файла.

Синтаксис


object.Skip(characters)

Синтаксис метода Skip имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта TextStream.

characters

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

Замечание


Пропущенные символы не запоминаются.

Пример


function SkipDemo()
{
  var fso, f, r;
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject")
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
  f.WriteLine("Hello world!");
  f.WriteLine("JScript is fun");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  f.Skip(6);
  r = f.ReadLine();
  return(r);
}

SkipLine (метод)

Описание


Пропускает следующую строку во время чтения TextStream файла.

Синтаксис


object.SkipLine( )

object всегда имя объекта TextStream.

Пример


function SkipLineDemo()
{
  var fso, f, r
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject")
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
  f.WriteLine("Hello world!");
  f.WriteLine("JScript is fun");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  f.SkipLine();
  r = f.ReadLine();
  return(r);
}

SubFolders (свойство)

Описание


Возвращает коллекцию Folders, содержащую все папки, содержащиеся в указанной папке, включая папки с атрибутами "скрытый" и "системный".

Синтаксис


object.SubFolders

object всегда объект Folder.

Пример


function ShowFolderList(folderspec)
{
  var fso, f, fc, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder(folderspec);
  fc = new Enumerator(f.SubFolders);
  s = "";
  for (;!fc.atEnd(); fc.moveNext())
    {
      s += fc.item();
      s += "<br>";
    }
    return(s);
}

TextStream (объект)

Описание


Облегчает последовательный доступ к файлу.

Синтаксис


TextStream.{property | method( )}

Аргументы property и method могут быть любыми свойствами и методами, поддерживаемыми объектом TextStream. Следует помнить, что фактическое использование TextStream заменяется переменной, представляющей TextStream объект, возвращаемый FileSystemObject.

В примере, a - это объект TextStream, возвращаемый методом CreateTextFile из FileSystemObject. WriteLine и Close два метода объекта TextStream.

Пример


var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();

TotalSize (свойство)

Описание


Возвращает размер, в байтах, диска или сетевого ресурса.

Синтаксис


object.TotalSize

object всегда объект Drive.

Пример


function SpaceReport(drvPath)
{
  var fso, d, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(drvPath));
  s = "Диск " + drvPath + " - ";
  s += d.VolumeName + "<br>";
  s += "Всего места: "+ d.TotalSize/1024 + " Kb <br>";
  s += "Свободно:  " + d.FreeSpace/1024 + " Kb";
  return(s);
}

Type (свойство)

Описание


Возвращает информацию о типе файла или папки. Например, для файлов с расширением .TXT, возвращается "Text Document".

Синтаксис


object.Type

object всегда объект File или Folder.

Пример


function ShowFileType(filespec)
{
  var fso, f, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  if (fso.FolderExists(filespec))
    f = fso.GetFolder(filespec);
  else if (fso.FileExists(filespec))
    f = fso.GetFile(filespec);
  else
    s = "Файл или папка не существуют.";
  s = f.Name + " это " + f.Type; 
  return(s);
}

VolumeName (свойство)

Описание


Устанавливает или возвращает имя тома указанного диска. Доступен для чтения/записи.

Синтаксис


object.VolumeName [= newname]

Свойство VolumeName имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта Drive.

newname

Необязателен. Если указан, newname это новое имя указанного объекта object.

Пример


function SpaceReport(drvPath)
{
  var fso, d, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(drvPath));
  s = "Диск " + drvPath + " - ";
  s += d.VolumeName + "<br>";
  s += "Всего места: "+ d.TotalSize/1024 + " Kb <br>";
  s += "Свободно:  " + d.FreeSpace/1024 + " Kb";
  return(s);
}

Write (метод)

Описание


Записывает указанную строку в файл TextStream.

Синтаксис


object.Write(string)

Синтаксис метода Write имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта TextStream.

string

Обязателен. Записываемая в файл строка.

Замечание


Указанные строки записываются в файл без пробелов или каких-либо символов между строками. Следует использовать метод WriteLine для записи символа новой строки или строки с сиволом новой строки на конце.

Пример


function WriteDemo()
{
  var fso, f, r
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject")
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
  f.Write("Hello world!");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  r = f.ReadLine();
  return(r);
}

WriteBlankLines (метод)

Описание


Записывает указанное количество символов новой строки в TextStream файл.

Синтаксис


object.WriteBlankLines(lines)

Синтаксис метода WriteBlankLines имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта TextStream.

lines

Обязателен. Количество символов новой строки, которые необходимо записать.

Пример


function WriteBlanksDemo()
{
  var fso, f, r;
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
  f.Write("Hello world!");
  f.WriteBlankLines(2);
  f.Write("JScript is fun!");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  r = f.ReadAll();
  return(r);
}

WriteLine (метод)

Описание


Записывает указанную строку и символ новой строки в файл TextStream.

Синтаксис


object.WriteLine(string)

Синтаксис метода WriteLine имеет следующие аргументы:

Аргумент

Описание

object

Обязателен. Всегда имя объекта TextStream.

string

Обязателен. Записываемая в файл строка.

Пример


function WriteLnDemo()
{
  var fso, f, r
  var ForReading = 1, ForWriting = 2;
  fso = new ActiveXObject("Scripting.FileSystemObject")
  f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
  f.WriteLine("Hello world!");
  f.Close();
  f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  r = f.ReadLine();
  return(r);
}

Переменные окружения


Свойства Описание
Environment Возвращает объект типа коллекция WshEnvironment
SpecialFolders Обеспечивает доступ к таким папкам Windows как: Папка рабочего стола, Папка меню Пуск, Папка личных документов. Использует объект WshSpecialFolders
Методы Описание
ExpandEnvironmentStrings Определяет значение переменной окружения PROCESS и возвращает результирующую строку
Объекты Описание
WshEnvironment Напрямую не используется. Доступ осуществляется через свойство WshShell.Environment
WshSpecialFolders Напрямую не используется. Доступ осуществляется через свойство WshShell.Folder


Свойство Environment
Свойство Environment возвращает объект WshEnvironment.
Синтаксис:
WshShell.Environment ([strType]) = objWshEnvironment
Замечания
Если strType определяет, где постоянно находится переменная окружения, возможные значения "System", "User", "Volatile", и "Process". Если strType не указан, этот метод получает системные переменные в Windows NT или системные переменные процесса в Windows 95. Для Windows 95 поддерживается только "Process" в качестве параметра strType.
Следующие переменные предоставляются операционной системой Windows. Скрипты могут также получить переменные окружения, которые были установлены другими прикладными программами.
Название Описание

NUMBER_OF_PROCESSORS

Число процессоров, используемых в компьютере.

PROCESSOR_ARCHITECTURE

Тип процессора автоматизированного рабочего места пользователя.

PROCESSOR_IDENTIFIER

Идентификатор процессора автоматизированного рабочего места пользователя.

PROCESSOR_LEVEL

Уровень процессора автоматизированного рабочего места пользователя.

PROCESSOR_REVISION

Версия процессора автоматизированного рабочего места пользователя.

OS

Операционная система на автоматизированном рабочем месте пользователя.

COMSPEC

Выполнимая программа для команды command prompt (обычно cmd.exe).

HOMEDRIVE

Первичный локальный диск (обычно диск C).

HOMEPATH

Основной каталог для пользователей по умолчанию (для Windows NT это - обычно \users\default.

PATH

Переменная окружения PATH.

PATHEXT

Расширения для исполняемых файлов (обычно .com, .exe, .bat, или .cmd).

PROMPT

Командная строка (обычно $P$G).

SYSTEMDRIVE

Локальный диск, на котором находится системный каталог (например, c:\).

SYSTEMROOT

Каталог ОС (например, c:\winnt). Аналогичен WINDIR.

WINDIR

Каталог ОС (например, c:\winnt). Аналогичен SYSTEMROOT.

TEMP

Каталог для хранения временных файлов (например, c:\temp). User, Volatile

TMP

Каталог для хранения временных файлов (например, c:\temp). User, Volatile

Пример

'Определить системную переменную NUMBER_OF_PROCESSORS 
    Set WshShell = Wscript. CreateObject (" Wscript. Shell ")
    Set WshSysEnv = WshShell. Shell ("SYSTEM")
    Wscript. ECHO WshSysEnv ("NUMBER_OF_PROCESSORS")


Свойство SpecialFolders
Свойство SpecialFolders позволяет объекту WshSpecialFolders получить доступ к таким папкам Windows как: Папка рабочего стола, Папка меню Пуск, Папка личных документов.


Метод ExpandEnvironmentStrings
Синтаксис:
WshShell.ExpandEnvironmentStrings(strString) = strExpandedString

Метод ExpandEnvironmentStrings расширяет переменную окружения PROCESS, содержащуюся в strString и возвращает результирующую строку. Переменные заключены между символами %
Имя переменной окружения не чувствительно к регистру.
Пример:
MsgBox "Prompt is " & WshShell.ExpandEnviromentStrings("%PROMPT%")

Объект WshEnvironment
Свойства Описание
Item Получает или устанавливает значение указанной переменной окружения
Count Количество перечисленных элементов
length Количество перечисленных элементов (JScript)
Метод Описание
Remove Удаляет указанную переменную окружения


Свойство Item
Синтаксис:
WshEnvironment.Item("strName") = strValue
WshEnvironment("strName") = strValue

Свойство Item устанавливает или возвращает значение переменной окружения strName. Это свойство - используется по умолчанию.
Примеры на VBScript:
'Получить значение переменной окружения NUMBER_OF_PROCESSORS
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set WshSysEnv = WshShell.Environment("SYSTEM")
  Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")

' Установить переменной окружения EXAMPLE значение A_VALUE
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  Set WshEnv = WshShell.Environment("VOLATILE")
  WshEnv("EXAMPLE")= "A_VALUE"

' Отобразить весь список системных переменных окружения
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  For Each strVarName In WshShell.Environment("SYSTEM")
    MsgBox strVarName
  Next

Свойство Count

Синтаксис:
WshEnvironment.Count = natNumberOfItems

Свойство Count предоставляет количество перечисленных элементов

Свойство length

Синтаксис:
WshEnvironment.length = natNumberOfItems

Свойство length предоставляет количество перечисленных элементов. Это свойство обеспечивает ту же функциональность, что и Count и введено только для совместимости с JScript

Метод Remove

Синтаксис:
WshEnvironment.Remove(strName)

Метод Remove удаляет переменную окружения, определяемую strName
Примеры на VBScript:

' Удаляет переменную окружения EXAMPLE
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  WshShell.Environment("VOLATILE").Remove("EXAMPLE")

' Удаляет несколько переменных
  Set WshUsrEnv = Wscript.Environment("User")
  WshUsrEnv.Remove("EXAMPLE_1")
  WshUsrEnv.Remove("EXAMPLE_2")
  WshUsrEnv.Remove("EXAMPLE_3")
  WshUsrEnv.Remove("EXAMPLE_4")

Объект WshSpecialFolders
Свойства Описание
Item Полный путь к указанной специальной папки (по умолчанию)
Count Количество перечисленных элементов
length Количество перечисленных элементов (JScript)


Свойство Item
Синтаксис:
WshShell.SpecialFolders.Item("strFolderName") = strFolderPath
WshShell.SpecialFolders("strFolderName") = strFolderPath
Свойство Item возвращает полный путь к специальной папке, определяемой strFolderName
Замечания
WshShell.SpecialFolders("strFolderName") возвращает NULL, если запрашиваемая папка strFolderName не доступна. Например, Windows95 не имеет папки AllUsersDesktop, и возвращает NULL, если strFolderName=AllUsersDesktop.
Следующие специальные папки существуют в операционных системах Windows95 и WindowsNT 4.0:
  • AllUsersDesktop
  • AllUsersStartMenu
  • AllUsersPrograms
  • AllUsersStartup
  • Desktop
  • Favorites
  • Fonts
  • MyDocuments
  • NetHood
  • PrintHood
  • Programs
  • Recent
  • SendTo
  • StartMenu
  • Startup
  • Templates
Пример:
' Этот фрагмент возвращает полный путь к папке рабочего стола Windows
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  StrMyDesktop = WshShell.SpecialFolders("Desktop")

' Перечислить все специальные папки
  For Each strFolder In WshShell.SpecialFolders
    MsgBox strFolder
  Next

Свойство Count

Синтаксис:
WshSpecialFolders.Count = natNumberOfItems

Свойство Count предоставляет количество перечисленных элементов

Свойство length

Синтаксис:
WshSpecialFolders.length = natNumberOfItems

Свойство length предоставляет количество перечисленных элементов. Это свойство обеспечивает ту же функциональность, что и Count и введено только для совместимости с JScript

Запуск программ


Методы Описание
Run Создание нового процесса
Exec Выполнение приложения в дочернем окне-оболочке
Метод Run

Синтаксис:
WshShell.Run (strCommand, [intWindowStyle], [blnWaitOnReturn])

Метод Run создает новый процесс и выполняет strCommand в окне, имеющем стиль intWindowStyle

Параметры:

strCommand

Переменные окружения в границах strCommand расширяются автоматически


intWindowStyle

Это значение, в которое устанавливается wShowWindow - элемент структуры STARTUPINFO для нового процесса. Может принимать следующие значения:

Название

Величина Значение

SW_HIDE

0

Прячет окно и активирует другое окно

SW_MINIMIZE

6

Минимизирует указанное окно и активирует следующее окно верхнего уровня в Z порядке

SW_RESTORE

9

Активирует и показывает окно. Если окно минимизировано или максимизировано, Windows восстанавливает его первоначальный размер и положение. Приложение должно задать этот флаг, если восстанавливается минимизированное окно.

SW_SHOW

5

Активизирует и показывает окно с его текущими положением и размерами

SW_SHOWMAXIMIZED

3

Активизирует окно и показывает его максимизированным

SW_SHOWMINIMIZED

2

Активизирует окно и показывает его минимизированным

SW_SHOWMINNOACTIVE

7

Показывает окно минимизированным. Активное окно остается активным

SW_SHOWNA

8

показывает окно в его текущем состоянии. Активное окно остается активным

SW_SHOWNOACTIVATE

4

Показывает окно с его последними размерами и положением. Активное окно остается активным

SW_SHOWNORMAL

1

Активизирует и показывает окно. Если оно было минимизировано или максимизировано, Windows восстанавливает его первоначальные размер и положение


blnWaitOnReturn

Если blnWaitOnReturn не задан или равен FALSE, метод немедленно возвращается для продолжения выполнения скрипта, не ожидая завершения выполнения процесса.
Если blnWaitOnReturn установлен в TRUE, метод Run возвращает любой код ошибки, переданный приложением.
Если blnWaitOnReturn не задан или равен FALSE, метод Run возвращает код ошибки 0

Пример:
' Этот фрагмент запускает NotePad во время выполнения скрипта.
  Set WshShell = Wscript.CreateObject("Wscript.Shell")
  WshShell.Run ("notepad " & Wscript.ScriptFullName)
  WshShell.Run ("%windir%\notepad" & Wscript.ScriptFullName)

' Этот фрагмент возвращает код ошибки выполненного приложения
  Return = WshShell.Run("notepad " & Wscript.ScriptFullName, 1, TRUE)

Метод Exec

Выполняет приложение в дочерней коммандной оболочке, обеспечивая доступ к потокам StdIn/StdOut/StdErr.
Синтаксис:
WshShell.Exec(strCommand)
Параметры:

strCommand

строковое значение, отражающее командную строку, используемую для запуска скрипта. Командная строка должна быть в точности такой, как если бы задавалась в строке приглашения.

Замечание:
Метод Exec возвращает объект WshScriptExec (обеспечивающий статус и информацию об ошибке скрипта, выполняемого с помощью Exec, одновременно с доступом к каналам StdIn, StdOut, и StdErr). Метод Exec позволяет выполнять только приложения, вызываемые командной строкой. Метод Exec не может быть использован для выполнения удаленных скриптов. Не следует путать метод Exec с методом Execute (объект WshRemote).
Пример:
//Данный пример демонстрирует, как метод Exec 
	выполняется из скрипта командной строки
var aJob = WshShell.Exec("%comspec% /c myScript.js");

Сетевое окружение, объект WshNetwork


Свойства Описание

ComputerName

Строковое представление имени компьютера

UserDomain Строковое представление имени домена пользователя
UserName Строковое представление имени пользователя
Методы Описание

AddWindowsPrinterConnection

Добавляет основанное на Windows связывание с принтером

AddPrinterConnection

Связывает удаленный принтер с локальным именем ресурса

EnumNetworkDrives Возвращает текущую схему сетевых дисков
EnumPrinterConnections Возвращает текущую схему сетевых принтеров

MapNetworkDrive

Указывет общую точку для локального имени ресурса

RemoveNetworkDrive Удаляет текущее соединение с сетевым диском
RemovePrinterConnection Удаляет текущее соединение с сетевым принтером
SetDefaultPrinter Устанавливает принтер по умолчанию
Свойство ComputerName

Свойство ComputerName обеспечивает строковое представление имени компьютера
Синтаксис:
WshNetwork.ComputerName = strComputerName

Свойство UserDomain

Свойство UserDomain обеспечивает строковое представление имени домена пользователя
Синтаксис:
WshNetwork.UserDomain = strDomain

Свойство UserName

Свойство UserName обеспечивает строковое представление имени пользователя
Синтаксис:
WshNetwork.UserName = strName

Метод AddWindowsPrinterConnection

Синтаксис:
WshNetwork.AddWindowsPrinterConnection(strPrinterPath, strDriverName, [strPort])

Метод AddWindowsPrinterConnection добавляет основанное на Windows связывание с принтером
Параметры:

strPrinterPath

строка, определяющая путь к присоединяемому принтеру

strDriverName

строка, определяющая имя драйвера (игнорируется при использовании WindowsNT/2000)

strPort

Необязательный параметр. Строка, определяющая порт принтера для установления связи (игнорируется при использовании WindowsNT/2000).

Замечания:
Использование этого метода похоже на использование опции Printer в панели управления для добавления принтера. В отличие от метода AddPrinterConnection, этот метод позволяет создать принтерное соединение без указания порта (например LPT1) Если соединение не удается, посылается сообщение об ошибке. В Windows 9x/ME драйвер принтера уже должен быть установлен на компьютере, использующем метод AddPrinterConnection. Если драйвер не установлен, Windows выдаст сообщение об ошибке.
Пример:
//Данный пример присоединяет сетевой принтер в среде Windows 9x/ME
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set PrinterPath = "\\printserv\DefaultPrinter"
Set PrinterDriver = "Lexmark Optra S 1650"
WshNetwork.AddWindowsPrinterConnection(PrinterPath, PrinterDriver)

Метод AddPrinterConnection

Синтаксис:
WshNetwork.AddPrinterConnection strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword]
Метод AddPrinterConnection связывает удаленный принтер определяемый strRemoteName с локальным именем ресурса strLocalName
Параметры:

strLocalName

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

strRemoteName

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

bUpdateProfile

Если bUpdateProfile поддерживается, и его значение TRUE, это связывание сохраняется в профиле пользователя

strUser

Если вы связываете удаленный принтер, используя параметры, отличные от параметров текущего пользователя, можно указать strUser и strPassword

strPassword

Если вы связываете удаленный принтер, используя параметры, отличные от параметров текущего пользователя, можно указать strUser и strPassword

Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
WshNetwork.AddPrinterConnection "LPT1", "\\Server\Print1"

Метод EnumNetworkDrives

Метод EnumNetworkDrives возвращает текущую схему сетевых дисков в виде объекта Коллекция. Элементы коллекции - локальные и удаленные имена.
Синтаксис:
WshNetwork.EnumNetworkDrive = objWshCollection
Пример:

Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
Wscript.Echo oDrives.Item(0) = "Z:"
Wscript.Echo oDrives.Item(1) = "\\Server\Share"

Метод EnumPrinterConnections

Метод EnumPrinterConnections возвращает текущую схему сетевых принтеров в виде объекта Коллекция. Элементы коллекции - локальные и удаленные имена.
Синтаксис:
WshNetwork.EnumPrinterConnections = objWshCollection
Пример:

Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
Wscript.Echo oPrinters.Item(0) = "LPT1:"
Wscript.Echo oPrinters.Item(1) \\Server\Printer1"

Метод MapNetworkDrive

Синтаксис:
WshNetwork.MapNetworkDrive strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword]
Метод MapNetworkDriveУказывет общую точку, определяемую strRemoteName для локального имени ресурса strLocalName
Параметры:

strLocalName

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

strRemoteName

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

bUpdateProfile

Если bUpdateProfile поддерживается, и его значение TRUE, это связывание сохраняется в профиле пользователя

strUser

Если вы связываете удаленный принтер, используя параметры, отличные от параметров текущего пользователя, можно указать strUser и strPassword

strPassword

Если вы связываете удаленный принтер, используя параметры, отличные от параметров текущего пользователя, можно указать strUser и strPassword

Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
WshNetwork.MapNetworkDrive "Z:", "\\Server\Share"

Метод RemoveNetworkDrive

Синтаксис:
WshNetwork.RemoveNetworkDrive strName, [bForce], [bUpdateProfile]
Метод RemoveNetworkDrive удаляет текущее соединение с сетевым диском, указываемым в strName
Параметры:

strName

параметр strName может быть либо локальным либо удаленным именем, в зависимости от того как расположен диск. Если диск расположен между локальным именем (буква диска) и удаленным именем, тогда strName должен быть установлен как локальное имя. Если путь к сети не имеет локальных имен (букв дисков), тогда strName должен быть установлен как удаленное имя.

bForce

Если bForce поддерживается, и его значение TRUE, метод удаляет соединение независимо от того, используется ресурс или нет

bUpdateProfile

Если bUpdateProfile поддерживается, и его значение TRUE, это связывание сохраняется в профиле пользователя

Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")

' Локальное имя связывается с удаленным ресурсом
  WshNetwork.MapNetworkDrive "Z:", "\\Server\Share" 
  WshNetwork.RemoveNetworkDrive "Z:"
' Отсутствие связываний таких как:
' NET USE \\Server\ShareWshNetwork.RemoveNetworkDrive "\\Server\Share"
  WshNetwork.MapNetworkDrive "\\Server\Share"
  WshNetwork.RemoveNetworkDrive "\\Server\Share"

Метод RemovePrinterConnection

Синтаксис:
WshNetwork.RemovePrinterConnection strName, [bForce], [bUpdateProfile]
Метод RemovePrinterConnection удаляет текущее соединение с сетевым принтером, указываемым в strName
Параметры:

strName

параметр strName может быть либо локальным либо удаленным именем, в зависимости от того подключен диск. Если принтер расположен между локальным именем (например LPT1) и удаленным именем, тогда strName должен быть установлен как локальное имя. Если путь к сети не имеет локальных имен (букв дисков), тогда strName должен быть установлен как удаленное имя.

bForce

Если bForce поддерживается, и его значение TRUE, метод удаляет соединение независимо от того, используется ресурс или нет

bUpdateProfile

Если bUpdateProfile поддерживается, и его значение TRUE, это связывание сохраняется в профиле пользователя

Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
' локальное имя связано с удаленным ресурсом
  WshNetwork.RemovePrinterConnection "LPT1:"
' Нет связывания с локальным именем. Например NET USE "\\Server\Printer1" 
  WshNetwork.RemovePrinterConnection "\\Server\Printer1"

Метод SetDefaultPrinter

Синтаксис:
WshNetwork.SetDefaultPrinter=strPrinterName
Метод SetDefaultPrinter связывает устройство печати по умолчанию с сетевым принтером, указанным в strPrinterName
Параметры:

strPrinterName

Имя удаленного принтера для установки печатающего устройства по умолчаннию, например "\\Server\Printer1". Следует помнить, что strPrinterName не может быть локальным именем, таким как "LPT1:"

Создание ярлыков


Метод CreateShortcut

Метод CreateShortcut создает объект WshShortcut и возвращает его. Если заголовок ярлыка оканчивается на .url - создается объект WshURLShortcut
Синтаксис:
WshShell.CreateShortcut(strPathname) = objShortcut Пример:

' Этот фрагмент кода создает ярлык
' к выполняющемуся в данный момент скрипту
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    Set oShellLink = WshShell.CreateShortcut("Current Script.lnk")
    oShellLink.TargetPath = Wscript.ScriptFullName
    oShellLink.Save
    Set oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL")
    oUrlLink.TargetPath = "http://www.microsoft.com"
    oUrlLink.Save

Объект WshShortcut
Свойства Описание

Arguments

Параметры для объекта, описываемого ярлыком

Description Описание объекта, описываемого ярлыком
Hotkey Горячие клавиши для объекта ярлыка
IconLocation Расположение иконки объекта ярлыка
TargetPath Путь к объекту ярлыка
WindowStyle Стиль окна для объекта ярлыка
WorkingDirectory Рабочий каталог для объекта ярлыка
Методы Описание

Save

Сохранение ярлыка в указанной файловой системе

Свойство Arguments

Свойство Arguments обеспечивает параметры для объекта ярлыка
Синтаксис:
WshShortcut.Arguments = strArguments

Свойство Description

Свойство Description обеспечивает описание для объекта ярлыка
Синтаксис:
WshShortcut.Description = strDescription

Свойство Hotkey

Свойство Hotkey обеспечивает горячие клавиши для объекта ярлыка. Горячая клавиша - это комбинация клавиш клавиатуры, которая обеспечивает быстрый запуск или переключение на данное приложение.
Синтаксис:
WshShortcut.HotKey = strHotKey
Замечания:
Строка strHotKey формируется по следующему образцу:
Hotkey     ::= modifier* keyname
modifier    ::= "ALT+" | "CTRL+" | "SHIFT+" | "EXT+"
keyname  ::= "A" .. "Z" |"0".. "9" |"Back" | "Tab" | "Clear" | "Return" | "Escape" | "Space" | "Prior" | ...
Полные имена клавиш могут быть найдены в файле WINUSER.H. Горячие клавиши не чувствительны к регистру.
Горячие клавиши могут активизировать ярлыки, находящиеся только на рабочем столе Windows или в меню Пуск. Windows Explorer не воспринимает клавиши ESC, ENTER, TAB, SPACE, PRINT SCREEN, BACKSPACE ,несмотря на WshShortcut. Данные клавиши могут указываться как горячие только в согласовании с Win32 API. Однако рекоммендуется не использовать их в ярлыках.
Пример:

Set WshShell = Wscript.CreateObject("Wscript.WshShell")
strDesktop = WshShell.SpecialFolders("Desktop")
Set oMyShortcut = WshShell.CreateShortcut(strDesktop & "\a_key.lnk")
OMyShortcut.TargetPath = "%windir%\notepad.exe"
oMyShortCut.Hotkey = "ALT+CTRL+F"
oMyShortCut.Save
Wscript.Echo oMyShortCut.HotKey = "Alt+Ctrl+F"

Свойство IconLocation

Свойство IconLocation обеспечивает путь к иконке для объекта ярлыка. Формат пути должен быть "Путь, индекс"
Синтаксис:
WshShortcut.IconLocation = strIconLocation

Свойство TargetPath

Свойство TargetPath обеспечивает путь к объектe ярлыка.
Синтаксис:
WshShortcut.TargetPath = strTargetPath

Свойство WindowStyle

Свойство WindowStyle обеспечивает стиль окна объекта ярлыка.
Синтаксис:
WshShortcut.WindowStyle = natWindowStyle

Свойство WorkingDirectory

Свойство WorkingDirectory обеспечивает рабочий каталог объекта ярлыка.
Синтаксис:
WshShortcut.WorkingDirectory = strWorkingDirectory

Метод Save

Метод Save сохраняет объект ярлык по указанному в свойстве FullName пути.
Синтаксис:
WshShortcut.Save

Объект WshURLShortcut
Свойства Описание

FullName

Полный путь к объекту URL ярлык

TargetPath Путь к объекту URL ярлык
Методы Описание

Save

Сохранение ярлыка в указанной файловой системе

Свойство FullName

Свойство FullName обеспечивает полный путь к объекту ярлыка.
Синтаксис:
WshUrlShortcut.FullName = strFullName

Свойство TargetPath

Свойство TargetPath обеспечивает путь к объекту ярлыка.
Синтаксис:
WshUrlShortcut.TargetPath = strTargetPath

Метод Save

Метод Save сохраняет объект ярлык по указанному в свойстве FullName пути.
Синтаксис:
WshUrlShortcut.Save

Работа с реестром


Методы Описание

RegDelete

Удаляет указанный ключ или значение из реестра

RegRead

Возвращает указанный ключ или значение из реестра

RegWrite

Устанавливает указанный ключ или значение в реестре

Метод RegDelete

Синтаксис:
WshShell.RegDelete strName
Метод RegDelete удаляет из реестра ключ или значение, указанное в strName
Параметры:

strName

Если strName заканчивается бэкслэшем (\), метод удаляет ключ вместо значения. Параметр strName должен начинаться одним из следующих корневых имен ключей:

Short

Long

HKCU

HKEY_CURRENT_USER

HKLM

HKEY_LOCAL_MACHINE

HKCR

HKEY_CLASSES_ROOT

HKEY_USERS

HKEY_CURRENT_CONFIG

Пример:
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegDelete "HKCU\ScriptEngine\Value"    ' Удалить значение "Value"
WshShell.RegDelete "HKCU\ScriptEngine\Key\"     ' Удалить ключ "Key"

Метод RegRead

Синтаксис:
WshShell.RegRead(strName) = strValue
Метод RegRead возвращает из реестра ключ или значение, указанное в strName
Параметры:

strName

Если strName заканчивается бэкслэшем (\), метод удаляет ключ вместо значения. Параметр strName должен начинаться одним из следующих корневых имен ключей:

Short

Long

HKCU

HKEY_CURRENT_USER

HKLM

HKEY_LOCAL_MACHINE

HKCR

HKEY_CLASSES_ROOT

HKEY_USERS

HKEY_CURRENT_CONFIG

Замечания:
Метод RegRead поддерживает только REG_SZ, REG_EXPAND_SZ, REG_DWORD, REG_BINARY, и REG_MULTI_SZ типы данных. Если реестр содержит другие типы данных, RegRead возвращает DISP_E_TYPEMISMATCH
Пример:
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegRead "HKCU\ScriptEngine\Value"    ' Получить значение "Value"
WshShell.RegRead "HKCU\ScriptEngine\Key\"     ' Получить ключ "Key"

Метод RegWrite

Синтаксис:
WshShell.RegWrite strName, anyValue, [strType]
Метод RegWrite задает в реестре ключ или значение, указанное в strName
Параметры:

strName

Если strName заканчивается бэкслэшем (\), метод удаляет ключ вместо значения. Параметр strName должен начинаться одним из следующих корневых имен ключей:

Short

Long

HKCU

HKEY_CURRENT_USER

HKLM

HKEY_LOCAL_MACHINE

HKCR

HKEY_CLASSES_ROOT

HKEY_USERS

HKEY_CURRENT_CONFIG

anyValue

Метод RegWrite автоматически конвертирует anyValue в строку, когда strType задан как REG_SZ или REG_EXPAND_SZ. Если strType задан как REG_DWORD, anyValue конвертируется в целое число.Если strType задан как REG_BINARY, anyValue должно быть целым.

strType

Метод RegWrite поддерживает в качестве strType: REG_SZ, REG_EXPAND_SZ, REG_DWORD и REG_BINARY. если в strType задан другой тип данных, RegWrite возвращает E_INVALIDARG.

Пример:
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCU\ScriptEngine\Value", "Some string value"
WshShell.RegWrite "HKCU\ScriptEngine\Key\", 1 "REG_DWORD"



Литература по HTML