Объект FileSystemObject метод DeleteFile и GetTempName — Удаление файлов Windows

Объект FileSystemObject метод DeleteFile и GetTempName — Удаление файлов Windows Объектная модель Windows Script Host

Любому пользователю операционной системы Windows рано или поздно нужно осуществить удаление ненужных файлов Windows, как правило, это разный мусор, который мы загрузили в мимолетном состоянии эйфории. В большинстве случаев задача решается простым выбором с помощью мышки ненужных файлов и нажатие на кнопку «DEL» на клавиатуре…

Однако, немало важно рассмотреть, как данная задача решается программным путём, а именно, с помощью сервера сценариев Windows Script Host и программирования с помощью скриптовых языков. За работу с файловой системой отвечает объект FileSystemObject, а за удаление ненужных файлов Windows отвечает его метод DeleteFile, кроме него, мы ещё рассмотрим метод GetTempName, который позволит генерировать временное имя файла. Давайте рассмотрим синтаксис данных методов.

DeleteFile( filespec [,force]) – Методу передаются два параметра, один из них является обязательным, а другой нет:

  • filespec – строковое значение, определяет полный путь к файлу Windows, который надо удалить, можно использовать подстановочные знаки, например, символ вопроса («?»), который заменяет любой один символ и звездочку («*»), которая заменяет любое количество символов.
  • force – это необязательный параметр, он принимает логическое значение true (можно удалить файлы с атрибутом только для чтения) и false (данное значение идет по умолчанию, говорит о запрете на удаление файлов с атрибутом только для чтения.)

GetTempName() – Как уже было сказано, метод позволяет генерировать случайное имя файла с расширением tmp. Именно его мы будем использовать для создания временных файлов, что бы потом произвести удаление файлов Windows.

Хорошо, теперь давайте приступим к программированию, как всегда, я сначала приведу программный код на языке vbscript, дам пояснения к программному коду, а уже потом приведу пример программного кода но уже на языке jscript.

'**********************************************' Объект FileSystemObject методы DeleteFile и GetTempName' Удаление ненужных файлов Windows' DeleteFile.vbs'********************************************** OptionExplicit dim WshShell, cur_dir, FSO, new_folder, i ' формируем ссылку на объектset WshShell = CreateObject("WScript.Shell"' путь к текущему каталогуcur_dir = WshShell.CurrentDirectory ' создаем ссылку на экземпляр объекта FileSystemObjectset FSO=CreateObject ("Scripting.FileSystemObject"' в текущей папке создаем новый каталогset new_folder=FSO.CreateFolder("Новый каталог_vbs"' циклично создаем 9 временных файловfor i=1 to 9 FSO.CreateTextFile(new_folder & "" & FSO.GetTempName)next WScript.Echo "Проверьте содержимое каталога " & new_folderWScript.Echo "Сейчас произойдет удаление файлов Windows в каталоге " & new_folder ' производим всех файловFSO.DeleteFile new_folder & "*.*", true ' удаляем каталогFSO.DeleteFolder new_folder, true  WScript.Echo "Процесс удаления завершен"

Обратите внимание, что в этом сценарии на языке vbscript я использовал родную функцию vbscript – CreateObject для создания ссылки на объект, плюс, там, где не нужно обрабатывать возвращаемое значение, я просто прописывал вызов метода. Сам сценарий работает по следующей схеме: сначала происходит создание каталога в текущей папке, далее в нём будет создано девять файлов, у которых будут случайные имена, сгенерированные с помощью метода GetTempName. Далее происходит вывод диалоговых окон, которые информируют пользователя о том, что бы он проверил содержимое текущего каталога и о том, что произойдёт удаление ненужных файлов Windows в созданной папке, а потом будет удалена и сама папка, для удаления каталога мы использовали метод DeleteFolder (более детально, читайте в статье «Объект FileSystemObject метод DeleteFolder«), файловая система Windows.

Файловая система Windows, удаление файлов

Хорошо, давайте продолжим программировать, но уже на языке jscript. Программный код выполняет ту же задачу, что и пример выше, разница лишь в том, что тут создаваемая папка будет иметь другое имя.

Как можно удалить файлы Windows
//**********************************************// Объект FileSystemObject методы DeleteFile и GetTempName// Удаление ненужных файлов Windows// DeleteFile.js//********************************************** var WshShell, cur_dir, FSO, new_folder, i; // формируем ссылку на объектWshShell =  WScript.CreateObject("WScript.Shell"); // путь к текущему каталогуcur_dir = WshShell.CurrentDirectory; // создаем ссылку на экземпляр объекта FileSystemObjectFSO= WScript.CreateObject("Scripting.FileSystemObject"); // в текущей папке создаем новый каталогnew_folder=FSO.CreateFolder("Новый каталог_js"); // циклично создаем 9 временных файловfor(i=1; i<=9; i++){     FSO.CreateTextFile(new_folder +"\"+ FSO.GetTempName());} WScript.Echo("Проверьте содержимое каталога "+ new_folder);WScript.Echo("Сейчас произойдет удаление файлов Windows в каталоге "+ new_folder); // производим всех файловFSO.DeleteFile(new_folder +"\*.*",true); // удаляем каталогFSO.DeleteFolder(new_folder,true); WScript.Echo("Процесс удаления завершен");

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

Скачать архив с примерами

И так, давайте подытожим: в этой статье мы рассмотрели метода DeleteFile и GetTempName объекта FileSystemObject, которые позволяют генерировать случайные имена для файлов, а также удалять ненужные файлы Windows.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий