Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用SSIS压缩文件夹_Sql Server_Ssis_Zip_Etl - Fatal编程技术网

Sql server 使用SSIS压缩文件夹

Sql server 使用SSIS压缩文件夹,sql-server,ssis,zip,etl,Sql Server,Ssis,Zip,Etl,我正在尝试压缩SSIS中的一个文件夹,源文件夹中有12个文件,我需要压缩该文件夹。我可以把文件压缩好我的问题是文件夹 我必须使用winzip来创建压缩包 谁能给我指一本好的教程吗。我无法实现我找到的任何示例 谢谢尝试使用7zip,因为它是免费的。看一看,它包含了您需要的所有命令 并使用脚本任务或执行流程任务来实现这一点。还有其他有用的链接: 更新1 您可以点击winzip的以下链接: 在上面的链接中,他们建议使用以下命令: wzzip "c:\Test.zip" "c:\myfol

我正在尝试压缩SSIS中的一个文件夹,源文件夹中有12个文件,我需要压缩该文件夹。我可以把文件压缩好我的问题是文件夹

我必须使用winzip来创建压缩包

谁能给我指一本好的教程吗。我无法实现我找到的任何示例


谢谢

尝试使用7zip,因为它是免费的。看一看,它包含了您需要的所有命令

并使用脚本任务或执行流程任务来实现这一点。还有其他有用的链接:

更新1

您可以点击winzip的以下链接:

在上面的链接中,他们建议使用以下命令:

 wzzip "c:\Test.zip" "c:\myfolder" -exPR

添加脚本任务时,yuo可以使用ZipFile(类),您必须参考项目(.NET Framework 4.5)中的System.IO.Compression.FileSystem程序集

您需要将要压缩的文件夹和压缩文件夹的名称作为ReadOnlyVariables(添加到ReadOnlyVariables选项卡中)提供给脚本任务

这两个变量必须在包的变量选项卡(字符串类型)中定义,并且可以在一个周期内动态更改(例如,针对每个变量)

我使用这两个变量:

sFolderCompressed - the folder '.zip' that you want to obtain eg. C:\folder1\result.zip 
sFolderSource - the source folder containing the files affected eg. C:\folder1\folder2

脚本是使用c#生成的,请选择脚本语言:Microsoft Visual c#

这是要添加到主方法中的代码:

using System.IO.Compression;

    public void Main()
    {
        try
        {
            string zipPath = (string)Dts.Variables["User::sFolderCompressed"].Value;
            string startPath = (string)Dts.Variables["User::sFolderSource"].Value;


            ZipFile.CreateFromDirectory(startPath, zipPath);
        }
        catch (Exception objException)
        {
            Dts.TaskResult = (int)ScriptResults.Failure;
            // Log the exception
        }
        Dts.TaskResult = (int)ScriptResults.Success;
    }

我希望能帮上忙。

把这些东西写在bat文件中。。。 “C:\Program Files\WinZip\WINZIP64.EXE”-a“C:\Desktop\destination\U folder\Sample.zip”“C:\Desktop\Sample”

在执行过程任务时:

提及bat文件在执行流程任务-->流程-->可执行文件中的位置


工作正常。

请展示您尝试过的内容,并参考您使用的示例,以避免不必要的“尝试这个..哦,我尝试了那个,它不起作用”来回。它可以帮助您开始Hello@alex感谢您的帮助!我试着按你的方式做。我完全按照你的建议做了,但我的包只是成功执行了,没有压缩文件夹。考虑一下我尝试过的情况。SfFulsCudio->:\Actudie\Test.Zip,SfFulsSooto-F:\Soal\Test..这些是我所建议的值,并在脚本任务中的只读变量中调用它们。但一切都没有改变。请纠正我的错误。请尝试使用SFolder Compressed-->F:\Archieve\test,不要使用F:\Archieve\test.zip;我希望这有帮助。我做了一个改变。。。。。。没有变化@alex…谢谢。但是在我的用户中,他们只使用winzip,我没有使用7 zip的权限。。请与winzip@ɐlǝx共享一个解决方案。伟大的这对我帮助很大。您好,我正在使用VS 2010,当我尝试使用您的方法时,我遇到了一个错误,我也使用了名称空间:错误1当前上下文中不存在名称“ZipFile”。您必须在之前将assembly System.IO.Compression.FileSystem添加到您的项目中;右键单击引用->添加引用->程序集->框架->检查System.IO.Compression.FileSystem,然后单击确定(您可以看到引用列表中的项目)