Операции с файлами

WSH. Примеры. Операции с файлами.



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




Проверка наличия файла



function ReportFileStatus(filespec) { var fso, s = filespec; fso = new ActiveXObject("Scripting.FileSystemObject"); if (fso.FileExists(filespec)) s += " exists."; else s += " doesn't exist."; return(s); }


Создать файл



var fso = new ActiveXObject("Scripting.FileSystemObject"); var a = fso.CreateTextFile("c:\\testfile.txt", true); a.WriteLine("This is a test."); a.Close();


CreateTextFile(Filename, Overwrite, Unicode)
Назначение: создаёт новый текстовый файл и возвращает объект "TextStream", указывающий на него.
Параметры:
Filename - строка, имя файла.
Overwrite - необязательный, булево (число). Перезаписывать файл, если он существует (True), или нет (False). По умолчанию - False. Если указано False и файл существует - произойдёт ошибка.
Unicode - необязательный, булево (число). Файл в формате Unicode (True), или ASCII (False). По умолчанию - False.

Создать временный файл



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();


GetSpecialFolder(Folderspec)
Назначение: возвращает объект "Folder" для некоторых специальных папок Windows.
Folderspec - число, определяет специальную папку. Возможные значения:
0 - Каталог Windows.
1 - Системный каталог библиотек и драйверов.
2 - Каталог временных файлов, путь к которому хранится в переменной среды "TMP".
Описание: если каталог не существует, произойдёт ошибка.
GetTempName()
Возвращает случайным образом сгенерированное имя файла, которое может быть использовано для создания временного файла.

Читать файл

Чтение текстового файла построчно

Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:\boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfStream Str = Str & TextStream.ReadLine() & vbCrLf Wend MsgBox Str TextStream.Close


Чтение всего файла в строку

function GetEverything() { var fso, f; var ForReading = 1; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.OpenTextFile("c:\\testfile.txt", ForReading); return(f.ReadAll()); }


Писать в файл

write(String)
Назначение: записывает в файл указанную строку. Символы возврата каретки и новой строки в файл не записываются.

WriteLine(String)
Назначение: записывает в файл указанную строку. В файл записываются символы возврата каретки и новой строки.
Параметры:
String - необязательный, строка для записи в файл. Если опущен, в файл записывается пустая строка.
WriteBlankLines(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); }


Удалить файл



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


DeleteFile(Filespec,Force>)
Назначение: удаляет указанный файл.
Filespec - строка, путь к файлу. В последнем компоненте параметра можно использовать групповые символы "*" и "?".
Force - необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию - False (не удалять).

Копировать



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




Переместить



function MoveFile2Desktop(filespec) { var fso; fso = new ActiveXObject("Scripting.FileSystemObject"); fso.MoveFile(filespec, "c:\\windows\\desktop\\"); }


Процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый файл уже существует или является папкой, возникнет ошибка.

Получение сведений о файле



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


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

function ShowFileLastAccessed(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = filespec.toUpperCase() + "\n"; s += "Last Accessed: " + f.DateLastAccessed; return(s); }


Определить дату последней модификации файла.

function ShowFileLastModified(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = filespec.toUpperCase() + "\n"; s += "Last Modified: " + f.DateLastModified; return(s); }


Общий пример

function ShowFileAccessInfo(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = f.Path.toUpperCase() + "\n"; s += "Created: " + f.DateCreated + "\n"; s += "Last Accessed: " + f.DateLastAccessed + "\n"; s += "Last Modified: " + f.DateLastModified return(s); }


Изменить атрибуты файла



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 = "Archive bit is cleared."; } else { f.attributes = f.attributes + 32; s = "Archive bit is set."; } return(s); }


Выбор файла через проводник



var objDialog = new ActiveXObject('UserAccounts.CommonDialog'); objDialog.Filter="WSH скрипты (*.vbs, *.js)|*.vbs;*.js|Все файлы (*.*)|*.*"; objDialog.InitialDir ="c:\\"; var intResult = objDialog.ShowOpen(); if (intResult == 0) WScript.quit(); else WScript.Echo(objDialog.FileName);






Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).






  TopList Rambler Top100 own counter Valid XHTML 1.0 Strict Valid CSS Rambler Top100

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2017  Бронислав Краснер