Уважаемые
подписчики! Спасибо за Ваше участие в голосовании. Итоги голосования
распределилсь следующим образом:
за продолжение подробного изучения использования JS в локальных системах – 82%,
за скорейший переход к теме WWW – 12%.
Как
видите, итоги говорят сами за себя. Тем не менее, я буду учитывать тот факт,
что некоторым не терпится поскорее перейти к применению JS в вэб, и по-возможности, в примерах буду приводить
образцы кода HTML. В
заключение, мне хотелось-бы привести несколько Ваших отзывов, полученных при
голосовании.
StarK
- http://stark.boom.ru.
«Я голосую за продолжение подробного описания возможностей JavaScript в
локальных системах.
Считаю, что это абсолютно правильный подход... Дело в том, что про программирование
для Web уже написано очень много, а руководств (нормальных) по программированию
сценариев JavaScript в локальных системах я не видел...»
"Vadim" <vadim@monolit.com>
Добрый день, Игорь!
Большое спасибо за рассылку. Очень интересно и полезно. Думаю, что желание
некоторых подписчиков скорее перейти к использованию JavaScript в Web, связано
с возможностью его применения в практических задачах которые им хорошо видны,
хотя многие и не подозревают, что применение JavaScript в локальных системах. во
многом может облегчить им жизнь. Так, что, по возможности, приводите в свох
рассылках больше практических примеров использования JavaScript в локальных
системах. Я думаю у Вас таких практических задач было много - так не бойтесь
рассказывать о них, показывая тем ценность изучения JavaScript в локальных
системах.
С уважением Вадим.
Еще один автор (я не получил от него
разрешения опубликовать его имя, поэтому не привожу его):
То что ты рассматриваешь, это совсем даже и не JavaScript, а JScript от MS.
Описание и различие спецификаций JS5 и JavaScript 1.3 можно почитать... нуа
основное то, что JavaScript - это всеж таки разработка Нетскейпа именно для
исполнения в броузере, а вот то что Windows Scripting Host умеет отрабатывать
несколько скриптовых языков в том числе и JScript - это, имхо, совсем другой
вопрос.
Я
полностью согласен с автором последнего сообщения. То что мы рассматриваем
СЕЙЧАС, действительно относится больше к «JScript от MS». В свое время я
сознательно выбрал язык сценариев Java
(независимо от его модификаций) именно потому, что он широко поддерживается
разными производителями ПО. Разработка Нетскейпа была подхвачена во всем
мире: Microsoft, Adobe, Corel, ClobalScape и т.д и т.д. И сейчас можно с
помощью этого средства управлять работой практически всех современных программ
самого широкого профиля – от графических редакторов до FTP клиентов. И наша рассылка призвана помочь Вам
найти тот универсальный язык, который можно с успехом применять в большинстве
своих задач – от архивирования файлов на своем домашнем компьютере до создания
интерактивных Web-страниц.
И этим уникальным средством, по моему глубокому убеждению, и является JavaScript. Тем более, что он открывает дорогу к более
легкому освоению еще одного молодого, но очень перспективного универсального
языка - Java
Но
вернемся к «нашим баранам» ;-).
Настало
время поговорить о доступе из текстов сценариев к файловой системе. С помощью
методов, описанных ниже, Вы сможете создавать и удалять каталоги, файлы,
получать и изменять их атрибуты, копировать из одногоместа в другое, управлять логическими дисками.
FileSystemObject
Объектная
модель FileSystemObject (FSO) содержит следующие объекты и коллекции.
Object/Collection
Описание
FileSystemObject
Основной объект. Содержит методы и
свойства, которые позволяют Вам создавать, удалять, получать информацию, и
вообще управлять дисками, папками, и файлами. Многие из методов связанны с
дубликатами этого объекта в других объектах FSO.
Drive
Объект. Содержит методы и свойства,
которые позволяют Вам собирать такую информацию о диске, подключенном к
системе, как сетевое имя и доступный объем. Обратите внимание, что
"диск" не обязательно должен быть «жесткий диск», это может быть
диск CD-ROM, ПСЕВДОДИСК (RAM), и т.д. Диск не обязательно должен быть физически подключен к
системе, он может также быть логически связанным через сеть.
Drives
Коллекция. Обеспечивает получение
списка дисков в системе, или физических или логических. Коллекция Drives включает
все диски, независимо от типа. Диски со сменными носителями не обязательно
должны иметь носители, вставленные в них, чтобы появиться в этой коллекции.
File
Объект. Содержит методы и свойства,
которые позволяют Вам создавать, удалять, или перемещать файлы. Также
позволяет Вам сделать запрос к системе для получения имени файла, пути, и
различных других свойств.
Files
Коллекция. Обеспечивает получение
списка всех файлов, содержащихся в пределах папки.
Folder
Объект. Содержит методы и свойства,
которые позволяют Вам создавать, удалять, или перемещать папки. Также
позволяет сделать запрос к системе для получения названий (имен) папки,
путей, и различных других свойств.
Folders
Коллекция. Обеспечивает получение
списка всех папок в пределах текущей Папки.
TextStream
Объект. Позволяет Вам читать и
записывать текстовые файлы.
Программирование с использованием объектной модели FileSystemObject (FSO):
1.Используя метод CreateObject, создают объект FileSystemObject.
2.Используют
соответствующий метод созданного объекта.
3.Получают доступ к
свойствам объекта.
Объектная модель FSO содержится в
библиотеке типов Сценариев, которая расположена в файле Scrrun.dll. Поэтому Вы
должны иметь Scrrun.dll в соответствующем системном каталоге Вашего компьютера, или на
вашем сервере Web, чтобы использовать объектную модель FSO.
FileSystemObjectObject Обеспечивает доступ к файловой
системе компьютера. y = newActiveXObject("Scripting.FileSystemObject")
Замечания Следующий код иллюстрирует, как
используется FileSystemObject, чтобы получить объект TextStream (как
текстовый файл), который может
быть открыт для чтения или записи:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
В коде примера создается объект
FileSystemObject как экземпляр объекта ActiveXObject. CreateTextFile метод
создает файл, как объект TextStream, и метод WriteLine записывает строку текста
в созданный текстовый файл. Завершение метода сбрасывает на диск буфер и
закрывает файл.
Предвижу Ваш возможный вопрос: «Будет
ли ЭТО работать с HTML страниц?». Для
ответа на этот вопрос ниже привожу код HTML-файла. Загрузите этот файл на своем
компьютере, и Вы получите ответ.
<HTML>
<HEAD>
<TITLE>Creating text file</TITLE>
</HEAD>
<SCRIPT>
function crfile() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is only the text file...");
a.Close();
document.write('<H2>File "c:\\testfile.txt" is CREATED '
+ 'on <Font color=#FF0000>You</Font> disk!</H2>');
}
</SCRIPT>
<body>
<BUTTON onClick="crfile();">Create file</BUTTON>
</body>
</HTML>
Как видите - работает. Правда,
навигатор (у меня IE 5.5) предупреждает
о том, что это небезопасно. Но всегда ли мы придаем значение таким
предупреждениям? А кто в этом случае помешает злоумышленнику передать на наш
компьютер «определенную» комбинацию кодов, затем переименовать файл в
исполняемый и запустить его с помощью этого же сценария? Или, к примеру, просто
удалить все файлы с Вашего жесткого диска? Но теперь Вы предупреждены, а значит
– вооружены.
Методы: BuildPath Метод |
CopyFile Метод |
CopyFolder Метод |
CreateFolder Метод |
CreateTextFile Метод |
DeleteFile Метод |
DeleteFolder Метод |
DriveExists Метод |
FileExists Метод |
FolderExists Метод |
GetAbsolutePathName Метод |
GetBaseName Метод |
GetDrive Метод |
GetDriveName Метод |
GetExtensionNameМетод | GetFile Метод |
GetFileName Метод |
GetFolder Метод |
GetParentFolderName Метод |
GetSpecialFolder Метод |
GetTempName Метод |
MoveFile Метод |
MoveFolder Метод |
OpenTextFile Метод