0
Голосовать

Разархивирование с помощью ActiveX в DTS пакете

Создано:

Доброго дня!

Столкнулся с маленькой проблемкой, но не могу найти её решения. Мне необходимо переодически затягивать данные в CRM, причем данные заархивированы раром.
Для этого я сделал DTS пакет, в котором ActiveX скрипт подбирает имя файла и пытаеться его разархивировать (попробовал через WSY.run запускать unrar).

Function Main()
Dim fso, sFile, sFolder, wsh

        Set fso = CreateObject("Scripting.FileSystemObject")
        Set sFolder = fso.GetFolder("D:\folder\")
        For Each sFile In sFolder.files

                If InStr(LCase(sFile.Name) , ".rar" ) Then     
                        Set wshs= CreateObject("WScript.Shell")                 wshs.Run "unrar.exe x -o+ D:\folder\" + sFile.Name + " base\" ,2

                End if

        Next

        Main = DTSTaskExecResult_Success

End Function

Появляеться окно унрара и сразу исчезает... Ничего не распоковываеться.
Помогите!!! :roll:

Комментарии

Евгений Хорошилов

Приношу свои извинения!
Надо было просто прописать полный путь к папке, куда разархивируем))))

Кончный код таков:

Function Main()
Dim fso, sFile, sFolder, wsh

   Set fso = CreateObject("Scripting.FileSystemObject")
   Set sFolder = fso.GetFolder("D:\folder\")
   For Each sFile In sFolder.files

      If InStr(LCase(sFile.Name) , "
.rar" ) Then    
         Set wshs= CreateObject("
WScript.Shell")         wshs.Run "unrar.exe x -o+ D:\folder\" + sFile.Name + " D:\folder\base\" ,2

      End if

   Next

   Main = DTSTaskExecResult_Success

End Function

Ольга Молчанова

Евгений, рады что Вы нашли ответ. Если у Вас будут возникать еще какие-либо вопросы, обязательно обращайтесь. Будем рады помочь.

)

Марченко Дмитрий Иванович

Добрый день !!!
Я у Вас впервые, поэтому извините, если что не так.
Вопрос такой:
1. есть архив страницы сайта (возникла необходимость сэкономить место);
2. требуется загрузить архив, разархивировать и вывести страницу во-фрейм; при этом следует результат разархивации после вывода страницы удалить.
Не подскажете как это выполнить ???
Дмитрий

Глова Сергей

Посмотрите простенький но наглядный пример
http://community.terrasoft.ua/developer/solutions/3846
Удалить можно с помощью того же FileSystemObject

Глова Сергей

Евгений Славянский в своем блоге писал о ActiveX мозиллы (если iexplore не подойдет)

Марченко Дмитрий Иванович
Глова Сергей пишет:
Посмотрите простенький но наглядный пример
http://community.terrasoft.ua/developer/solutions/3846
Удалить можно с помощью того же FileSystemObject

Прошу меня извинить: может быть я плохо смотрел ...., но я не нашел ...
Единственный пример, который я там заметил, так это

Глова Сергей пишет:
var URL;
var Dataset = GetFileContentDataset();
Dataset.Close();
Dataset.SelectQuery.Parameters.ItemsByName('ID').Value = FileID;
Dataset.Open();
if (IsDatasetEmpty(Dataset)) {
URL = EmptyStr;
} else {
URL = LoadFileFromDataset(FilePath, Dataset, 'FileData');
}
ActiveXControl.ActiveXObject.Navigate(URL);

Может быть это он и есть??? Но где тогда благополучная функция FileSystemObject ???
Есть там, конечно, и функция VisualBasic ....
Может подскажете в чем я не прав ???
Дмитрий

Марченко Дмитрий Иванович

Кстати ... Нашел описание FileSystemObject ...
http://www.script-coding.info/WSH/FileSystemObject.html
Но никакого описания разархивации в нем нет (???).
Наверное я чего-то недопонял ....
Дмитрий

Глова Сергей

Я писал о отображении веб странички и удалении архива.

Марченко Дмитрий Иванович
Глова Сергей пишет:
Я писал о отображении веб странички и удалении архива.

Ах ты маленький мой матросик .... Закинуть вэб-страничку и я умею ... А вот как ее динамически достать из архива, а уж затем отобразить ... ???
Дмитрий

Марченко Дмитрий Иванович
Глова Сергей пишет:
Я писал о отображении веб странички и удалении архива.

Кстати, опять-таки: я спрашивал об удалении результатов разархивации ... Но это уже нетак важно: они удаляются так же, как и упомянутый Вами архив ...
Дмитрий

Глова Сергей

Разархивация - Shell или ActiveX.
http://otvety.google.ru/otvety/thread?tid=13e628eada06ef65&pli=1

Отображение в вишеописанном примере:
ActiveXControl.ActiveXObject.Navigate(URL);
где Юрл - путь к файлу.