Объект FileSystemObject метод GetFileName, GetBaseName и GetExtensionName — Получить имя файла

Объект FileSystemObject метод GetFileName, GetBaseName и GetExtensionName — Получить имя файла Объектная модель Windows Script Host

Довольно часто нужно имя файла без его расширения, или получить имя и расширение файла в заданном пути. В большинстве случаев, такие задачи возникают при программировании, например, когда надо получить список файлов, имена которых будут в заданном формате.

Одним из вариантов решения поставленной задачи является использование объекта FileSystemObject, а точнее, его методов, давайте познакомимся с ними…

Получить имя файла

GetBaseName(path) – данный метод предоставляет возможность получить базовое имя файла без его расширения.

GetExtensionName(path) – возвращает расширения файла.

GetFileName(path) – вернёт полное имя файла вместе с его расширением.

Все три метода принимают один параметр (path), который содержит строковое значение, а именно, полный путь к анализируемому файлу.

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

Файловая система Windows - получить полное имя файла, короткое и расширение

И так, первый пример:

'***********************************************************************' Объект FileSystemObject методы GetFileName GetBaseName GetExtensionName' Получить имя файла с расширение, без и само расширение' GetFile_Base_Extensionname.vbs'*********************************************************************** OptionExplicit  dim FSO, WshShell, cur_dir, new_folder, new_file, list, index 'Создаем объект FileSystemObjectset FSO=WScript.CreateObject("Scripting.FileSystemObject"' Создаем объект WScript.Shellset WshShell = WScript.CreateObject("WScript.Shell"' путь к текущему каталогуcur_dir = WshShell.CurrentDirectory ' в текущей папке создаем новый каталогset new_folder=FSO.CreateFolder("Новый каталог_vbs") list = "Содержимое папки" & new_folder & vbCrLf & vbCrLf ' создаем 3 временных файлаfor index=1 to 3    'получить полное имя временного файла    new_file = FSO.GetTempName    ' создаем временный    файл    FSO.CreateTextFile(new_folder & "" & new_file)    ' получаем список    list = list & "Полное имя: " & FSO.GetFileName(new_folder & "" & new_file) & vbCrLf    list = list & "Базовое имя: " & FSO.GetBaseName(new_folder & "" & new_file) & vbCrLf    list = list & "Расширение: " & FSO.GetExtensionName(new_folder & "" & new_file) & vbCrLf & vbCrLfnext ' выводим значение переменной list WScript.Echo list

Начнём с назначения переменных, которые мы объявили с помощью ключевого слова dim:

FSO – данная переменная будет хранить ссылку на экземпляр объекта FileSystemObject, то, что это именно ссылка, определяет ключевое слово set. Для формирования ссылки мы использовали функцию CreateObject объекта Wscript.

WshShell – эта переменная хранит ссылку на объект WScript.Shell, который нужен, что бы получить имя файла, являющегося временным.

cur_dir – тут мы храним полный путь к текущему каталогу (каталог, из которого запущен данный сценарий), для этого, мы использовали свойство CurrentDirectory (смотрите статью «Объект WScript.Shell — метод ExpandEnvironmentStrings и свойство CurrentDirectory«)

new_folder – хранит путь к новому каталогу, который мы создали с помощью метода CreateFolder (статья «Объект FileSystemObject метод CreateFolder«).

new_file – значение будет содержать полное имя временного файла, его мы назначаем с помощью метода GetTempName (статья «Объект FileSystemObject метод DeleteFile и GetTempName«).

list – хранит список с нужными значениями.

index – переменная используется в цикле for.

Сам текстовый документ мы создаем с помощью метода CreateTextFile (статья «Объект FileSystemObject метод CreateTextFile«), получить имя файла.

Получение имени файла с помощью объекта FileSistemObject

Обратите внимание, что методам GetFileName, GetBaseName и GetExtensionName мы передаем строку, состоящую из слияния двух переменных (new_folder и new_file), между которыми мы вставляем разделитель (косую черту).

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

А вот аналогичный пример, который позволяет получить имя файла, но уже на языке jscript:

//***********************************************************************// Объект FileSystemObject методы GetFileName GetBaseName GetExtensionName// Получить имя файла с расширение, без и само расширение// GetFile_Base_Extensionname.js//*********************************************************************** var FSO, WshShell, cur_dir, new_folder, new_file, list, index; //Создаем объект FileSystemObjectFSO=WScript.CreateObject("Scripting.FileSystemObject"); // Создаем объект WScript.ShellWshShell = WScript.CreateObject("WScript.Shell"); // путь к текущему каталогуcur_dir = WshShell.CurrentDirectory; // в текущей папке создаем новый каталогnew_folder=FSO.CreateFolder("Новый каталог_js"); list ="Содержимое папки"+ new_folder +"nn"; // создаем 3 временных файлаfor(index=1; index<=3; index++){     //получить полное имя временного файла    new_file = FSO.GetTempName();    // создаем временный    файл    FSO.CreateTextFile(new_folder +"\"+ new_file);    // получаем список    list +="Полное имя: "+ FSO.GetFileName(new_folder +"\"+ new_file)+"n";    list +="Базовое имя: "+ FSO.GetBaseName(new_folder +"\"+ new_file)+"n";    list +="Расширение: "+ FSO.GetExtensionName(new_folder +"\"+ new_file)+"nn";} // выводим значение переменной list WScript.Echo(list);

Тут в принципе производятся те же действия, только создается новая папка под другим именем (чтобы не создавать конфликт), вместо перевода строки мы используем последовательность «n», ну и косую черту мы прописываем дважды.

И так, мы рассмотрели три метода объекта FileSystemObject —  GetFileName, GetBaseName и GetExtensionName, которые позволяют получить тот или иной формат имени файла или его расширение, если есть вопросы, пишите в комментариях, так же подписывайтесь на сайт для получения новых статей.

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