Любому пользователю операционной системы 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 '********************************************** Option Explicit dim WshShell, cur_dir, FSO, new_folder, i ' формируем ссылку на объект set WshShell = CreateObject("WScript.Shell") ' путь к текущему каталогу cur_dir = WshShell.CurrentDirectory ' создаем ссылку на экземпляр объекта FileSystemObject set 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_folder WScript.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.
Хорошо, давайте продолжим программировать, но уже на языке jscript. Программный код выполняет ту же задачу, что и пример выше, разница лишь в том, что тут создаваемая папка будет иметь другое имя.
//********************************************** // Объект FileSystemObject методы DeleteFile и GetTempName // Удаление ненужных файлов Windows // DeleteFile.js //********************************************** var WshShell, cur_dir, FSO, new_folder, i; // формируем ссылку на объект WshShell = WScript.CreateObject("WScript.Shell"); // путь к текущему каталогу cur_dir = WshShell.CurrentDirectory; // создаем ссылку на экземпляр объекта FileSystemObject FSO= 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.