Объект 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
'**********************************************
 
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.

Файловая система 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;
 
// создаем ссылку на экземпляр объекта 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.

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