Объект Scripting. File позволяет просматривать информацию об отдельных файлах, включая имена, атрибуты, размеры и даты, и вносить в нее изменения. Как и при работе с объектами Drive и Folder, вы можете получить объект File для файла, чье имя было указано, или же можете получить коллекцию, состоящую из всех файлов заданной папки. При желании можно осуществить последовательный перебор всех элементов коллекции и выбрать файлы по имени, расширению, размеру, дате и т. д. Этот сценарий содержит подпрограмму для очистки от временных и резервных файлов заданного объекта Folden. Сценарий начинается с вызова подпрограммы cleanup для объекта Folden, созданного для отображения C:TEMP. Подпрограмма cleanup использует ту же самую технологию, которая использовалась в предыдущем примере для удаления всех, имеющихся в папке файлов ВАК и ТМР. А затем начинается все самое интересное: cleanup сканирует все подпапки, имеющиеся в TEMP. Свойство папки SubFoldens возвращает коллекцию, состоящую из всех находящихся внутри папок. Затем cleanup поочередно вызывает саму себя для каждой подпапки. Поскольку cleanup вызывается для каждой подпапки, она выполняет наш замысел: последовательно перебирает все файлы и удаляет те из них, которые относятся к ВАК и ТМР, а также она сканирует все более глубокие подпапки и вызывает саму себя для удаления ненужных файлов из этих подпапок. Точно такую же технологию можно использовать для работы с файлами на основе их размера, атрибутов, даты последнего изменения или даты создания и т. д., в зависимости от ваших потребностей. Это достаточно распространенная технология, заслуживающая выделения в отдельную схему.
Можно также выбрать файлы на основе состояния их атрибутов. Когда я набирал эту главу, пришло сообщение по электронной почте от моего редактора, Рика Кугена (Rick Kughen), в котором он меня спрашивал, нет ли какого-нибудь простого способа снять все атрибуты «Только для чтения» со всех МРЗ-файлов в его музыкальной папке и всех ее подпапках. (Это я к тому, что вопрос пришелся как раз в тему!) Вот версия нашей схемы для решения заданной им задачи: