В сценариях, работающих с файлами и папками, часто нужно выстраивать полные путевые имена путем объединения имени файла с путевым именем. С этим приходится сталкиваться при копировании и переименовании файлов, создании временных файлов и т. д. Полностью определенные путевые имена имеют примерно следующий вид:
Создание полностью определенного имени путем объединения путевого имени (диска и (или) папки) с именем файла не сводится только лишь к простой задаче соединения вместе двух частей с символом обратного слэша между Проблема в том, что кто-нибудь может указать путь как "а:", подразумевая копирование файла в Текущую папку диска А:. Но, эта учебная программа выдаст имя "а: chapten. doc", в результате чего файл попадет в Корневую папку диска А:. Более того, если кто-нибудь вводит такой путь, как "с: temp", программа выдает строку "с: tempWchapten. doc", которая технически является неприемлемым именем файла. (Такое имя работает, но рассчитывать на это в будущем не стоит.)
Решение этой проблемы заключается в использовании метода BuildPath, предоставляемого объектом FileSystemObject. Его задача — объединить пути с именами файлов, и он берет в расчет все тонкости этой задачи. Предыдущую учебную программу можно переписать следующим образом: filename = "chapten. doc" path = "c:usensbknitteldocuments" fullpath = fso. BuildPath(pathj filename) Цикл for each выполняется по одному разу для каждого файла папки, указанной в переменной infolder. Метод GetFolder возвращает объект Folder; . Files возвращает коллекцию, состоящую из всех файлов в этой папке; a for each осуществляет последовательный перебор всех элементов коллекции. При каждом проходе цикла переменная file содержит ссылку на объект Scripting. File, представляющий один файл. Метод fso. Get File Extension (file, name) возвращает только расширение имени файла, извлекаемое из свойства name объекта, на который ссылается переменная file (об объекте файла речь еще впереди).