Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Кроме того, с использованием дескриптора доступа к элементам файловой системы fso дополнительно могут быть получены все основные характеристики носителя:
n тип файловой системы носителя – fso.GetDrive(i.DriveLetter).FileSystem;
n серийный номер тома – Hex(fso.GetDrive(i.DriveLetter).SerialNumber);
n метка тома – fso.GetDrive(i.DriveLetter).VolumeName;
n общий размер диска – FormatNumber (fso.GetDrive(i.DriveLetter).TotalSize /1048576, 1) & " Мб");
n размер незанятого пространства диска – FormatNumber (fso.GetDrive(i.DriveLetter).FreeSpace /(1024*1024), 1) & " Мб").
При разработке кода программы необходимо учитывать то обстоятельство, что в считывающем устройстве необязательно присутствие носителя (дискеты в дисководе или диска CD в приводе), и при обработке функций для получения свойств носителя могут возникнуть ошибки. Для таких случаев в языке VBScript используются конструкции On Error Resume Next, Err.Number и Err.Clear, позволяющие пользователю сформировать код для самостоятельной обработки исключений (см. рис. 1).
Рисунок 1. Результаты обработки информации об имеющихся в системе дисках
Следует также предусматривать ситуации, когда диски появляются в системе лишь на некоторое время. Это может быть связано с подключением сетевых дисков, наличием сменных USB flash или шифрованных дисков. Некоторые подходы, позволяющие определить, с какими дисками пользователю приходилось иметь дело, будут изложены далее.
Поиск файлов
Если задаться целью найти все файлы-контейнеры для шифрованных дисков, то эта задача может быть решена, например, путем проверки содержимого всех файлов, размещающихся на диске, на предмет наличия в них определенной комбинации байт-сигнатуры. Кроме того, большинство известных программ работы с шифрованными дисками регистрируют в операционной системе определенные расширения файлов, ассоциируемые с файлами-контейнерами, что позволяет сузить круг поиска интересующих файлов до проверки наличия в имени определенного расширения.
Ниже приводится структура рекурсивной процедуры обхода подкаталогов для решения задачи поиска на диске файлов, обладающих необходимыми свойствами.
Sub WorkSubFolder(sdrivename)
Dim sfolder : set sfolder=fso.getfolder(sdrivename)
' Для работы с подкаталогами источника
Dim ssfolder : set ssfolder=sfolder.SubFolders
' Для работы с файлами каталога источника
Dim ssfiles : set ssfiles=sfolder.Files
Dim fo
' Цикл обработки подкаталогов каталога источника
For Each fo In ssfolder
WorkSubFolder SDriveName&""&fo.name
Next
' Для всех файлов текущего каталога вызывается процедура WorkForFile
Dim fi : For Each fi In ssfiles : WorkForFile sfolder&""&fi.name : Next
End sub
Файлы, имена которых содержат интересующее расширение, могут быть найдены с применением функции fso.Get-ExtensionName(fullnamefile) (см. рис. 2).
Рисунок 2. Результаты поиска файлов, имеющих заданные расширения
Для поиска файлов с определенной сигнатурой в простейшем случае достаточно воспользоваться функциями открытия файла (fr=fso.OpenTextFile(FullNameFile, 1, false)), чтения данных из файла (s_read=fr.Read(1)) и закрытия файла (fr.Close) (см. рис. 3).