|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - WSH + FSO - поиск объектов по каталогам |
|
VBS/WSH/JS - WSH + FSO - поиск объектов по каталогам
|
Новый участник Сообщения: 3 |
Приветствую,
имеется простой сценарий и вопрос: *** Option Explicit Dim FSO Dim ObjFolder, ObjSubFolder Dim text, i Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = fso.getfolder("c:\Someone_Folder") Set ObjSubFolder = ObjFolder.SubFolders Call ListSubFolders(objSubFolder) Public Sub ListSubFolders(obj) For Each i In obj text = text & i.name & vbcrlf Next end Sub WScript.Echo Text *** Соответственно, выводится список всех подкаталогов взятой папки Каким образом можно вывести так же и вложенные в нее файлы, и файлы каталогов-внуков в тот же поток? В ADSI (WinNT) у всех объектов есть свойство - object.class, - таким образом можно создать нечто вроде if obj.class = "organizationalUnit" then далее вызвать необходимую процедуру, к примеру вышеперечисленную, - при этом в качестве входящего параметра будет использоваться найденный объект-контейнер, и поиск будет производиться уже соответственно из этого родителя. Но на FSO в документации и MSDN ничего не нашол, информации мало ![]() Может, у кого какие идеи есть, или сталкивались? Можно на JS Спасибо! |
|
Отправлено: 14:08, 24-01-2008 |
Старожил Сообщения: 203
|
Профиль | Сайт | Отправить PM | Цитировать '-------------------------- Option Explicit '-------------------------- Dim fso Set fso = WScript.CreateObject("Scripting.FileSystemObject") Dim root_folder Set root_folder = fso.GetFolder("G:\Temp") Dim output_str output_str = vbNullString '-------------------------- Call list_all_childs(root_folder, output_str) '-------------------------- Call WScript.Echo(output_str) Call WScript.Quit(0) '-------------------------- Public Sub list_all_childs(folder, output) output = output & folder.Path & vbCrLf Dim child_folder, child_folders Set child_folders = folder.SubFolders For Each child_folder In child_folders Call list_all_childs(child_folder, output) Next Dim file, files Set files = folder.Files For Each file In files output = output & file.Path & vbCrLf Next End Sub '-------------------------- |
------- Отправлено: 16:32, 24-01-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать если плясать от исходного...
Option Explicit Dim FSO Dim ObjFolder, ObjSubFolder Dim text, i, pre, fi, fobj, folder Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = fso.getfolder("c:\Someone_Folder") Call ListSubFolders(objFolder,"") 'pre - для отступа... Public Sub ListSubFolders(obj,pre) Set ObjSubFolder = obj.SubFolders For Each i In ObjSubFolder text = text & pre & i.name & vbcrlf Set folder = fso.getfolder(i.path) 'тут вызовем саму себя Call ListSubFolders(i, pre & " ") Set fobj = folder.Files For Each fi in fobj text = text & pre & " " & fi.name & vbcrlf Next Next end Sub WScript.Echo Text |
Отправлено: 17:01, 24-01-2008 | #3 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Ramzes_ & Sham - Thnks!)
|
Отправлено: 09:07, 25-01-2008 | #4 |
Старожил Сообщения: 224
|
Профиль | Отправить PM | Цитировать dsa, Вот ещё вариант
Dim dArray(), idx, idx1, SFCount Idx=1 SFCount=1 Set FSO = CreateObject("Scripting.FileSystemObject") ReDim Preserve dArray(idx) dArray(idx)=InputBox ("Введите полный путь к папке") Sub SFfunc If SFcount=0 and idx1=idx Then exit sub SFCount=0 idx1=idx1+1 Set SD=FSO.GetFolder(dArray(idx1)) For each SF in SD.Subfolders idx=idx+1 Redim Preserve dArray(idx) dArray(idx)=SF.Path SFCount=SFCount+FSO.GetFolder(dArray(idx)).SubFolders.Count call SFfunc next end sub |
|
------- Отправлено: 20:18, 25-08-2008 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Управление доступом к файлам и каталогам | dascon | Microsoft Windows NT/2000/2003 | 15 | 02-09-2008 01:50 | |
Рейтинг обращений к каталогам | ValVlaGen | Программное обеспечение Windows | 0 | 24-04-2008 08:41 | |
Ошибка - Win XP SP1RUS подвисание при обращении к каталогам | Burglarnet | Microsoft Windows 2000/XP | 1 | 14-11-2007 11:15 | |
[решено] Проблемы с доступом к сетевым каталогам | dww | Microsoft Windows NT/2000/2003 | 13 | 22-09-2006 08:47 | |
Распределение доступа к каталогам на домашнем компьютере?.. | Андрей Рябухин | Microsoft Windows 2000/XP | 13 | 01-08-2002 11:41 |
|