|
|
#1 |
|
Участник
|
Ребят, подскажите, пожалуйста, кто сталкивался подобной ситуацией.
Необходимо выполнить вывод всех файлов (их название), которые указаны в соответствующей директории, используя Automation. Собственно я создал указанные ниже две переменные: FileSystem Automation 'Microsoft Scripting Runtime'.FileSystemObject Folder Automation 'Microsoft Scripting Runtime'.Folder Код: CREATE(FileSystem);
IF NOT FileSystem.FolderExists("Path") THEN
ERROR(‘Нет такой директории’);
Folder := FileSystem.GetFolder(“Path”); |
|
|
|
|
#2 |
|
Участник
|
Использовать автомейшен обязательно? Вроде есть виртуальная таблица File, которую легко можно использовать в навижене как и обычную таблицу..
|
|
|
|
|
#3 |
|
Участник
|
Да, обязательно (по крайней мере мне так кажется). Просто папка с файлами лежит не на локальной машине, а в расшаренной папке в сети. Насколько я знаю, виртуальная таблица File тут не поможет (по крайней мере пробовал - не помогло, с локальными файлами замечательно работает).
|
|
|
|
|
#4 |
|
Участник
|
Пример браузера в Navе.
В ОпенФорм укажите свой путь к сетевой папке, используя имя компьютера или его IP. |
|
|
|
|
#5 |
|
Участник
|
Цитата:
Спасибо заранее. |
|
|
|
|
#6 |
|
Участник
|
kudrenko
а какой номер Вас устроит? |
|
|
|
|
#7 |
|
Участник
|
|
|
|
|
|
#8 |
|
Участник
|
Все поправил.
|
|
|
|
|
#9 |
|
Участник
|
|
|
|
|
|
#10 |
|
Участник
|
Если хотите использовать Automation, то 2 варианта.
1. С Microsoft Scripting Runtime простого пути нет. Получить данные можно через функцию-итератор, которых в NAV нет. На mibuso народ путем http://mibuso.com/forum/viewtopic.php?f=5&t=7855 2. Те кто ищет пути полегче могут использовать Microsoft Shell Controls And Automation. Код: CREATE(ShellCtrls);
ShellFolder := ShellCtrls.NameSpace('C:\Temp');
ShellItems := ShellFolder.Items;
FOR i := 0 TO ShellItems.Count - 1 DO BEGIN
IF NOT ShellItems.Item(i).IsFolder OR ShellItems.Item(i).IsBrowsable THEN BEGIN
INIT;
"Row No." := i;
"Cell Value as Text" := ShellItems.Item(i).Path;
INSERT;
END;
END;ShellCtrls - 'Microsoft Shell Controls And Automation'.Shell ShellFolder - 'Microsoft Shell Controls And Automation'.Folder ShellItems - 'Microsoft Shell Controls And Automation'.FolderItems можно еще использовать 'Microsoft Shell Controls And Automation'.FolderItem напрямую, добавив соответсвующее присвоение в цикле. Но можно и неявно, как в примере. Со свойствами FolderItem есть некоторые заморочки. При тестировании выяснилось, что FolderItem = TRUE не только для папок, но и для zip архивов. К счастью, для архивов IsBrowsable = TRUE, в то время как для обычных папок FALSE. Возможны еще какие-то ньюансы. Можно, конечно, использовать свойство Type, но оно локализовано (на русской винде для папок выдает "Папка с файлами", что чревато проблемами. |
|
|
|
|
#11 |
|
Участник
|
Alterant,спасибо большое, что нашли время и поделились своими советам по вопросу - очень за это признателен! Даже и не предполагал, что это так "извращенно" делается... (особенно по первому варианту ))) Теперь хоть буду иметь представление как это делается с помощью Automation. Спасибо.
|
|
|