Ajout d'une tâche de script, yuo peut utiliser la ZipFile (classe) here reference, vous devez vous référer à l'Assemblée System.IO.Compression.FileSystem dans le projet (.NET Framework 4.5).
Vous devez fournir à la tâche de script le dossier à fermeture éclair et le nom du dossier compressé comme ReadOnlyVariables (à ajouter dans l'onglet ReadOnlyVariables)
Ces deux variables doivent être définies dans l'onglet Variables (type String) de l'emballage et peut être modifié de façon dynamique par un cycle (par exemple, pour chaque)
j'utiliser ces deux variables:.
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
Le script est fait en utilisant C#, choisissez Script Langue: Microsoft Visual C#
Voici le code à ajouter dans la méthode principale:
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;
}
, je l'espère aider.
S'il vous plaît montrer ce que vous avez essayé et se référer aux exemples que vous avez utilisés pour éviter inutiles * "essayez ceci .. oh j'ai essayé ça, ça n'a pas fonctionné" * avant et en arrière – Filburt
Il peut vous aider à démarrer [link] (https://stackoverflow.com/questions/38378321/how-to-zip-a-folder-using-ssis-2008-without-using-any-third-party-sw/38481869#38481869) –
Bonjour @alex A appréciez votre aide! J'ai essayé de faire à votre façon. J'ai fait exactement ce que vous avez suggéré mais mon paquet est simplement exécuté avec succès et ne compresse pas le dossier. Considérez la situation comme j'ai essayé..sFolderCompressed -> F: \ Archieve \ test.zip, sFolderSource -> F: \ Source \ test..ces sont la valeur que j'ai passé et les a appelés dans la variable Lecture seule dans la tâche de script comme vous l'avez suggéré. Mais rien n'a changé. S'il vous plaît corrigez-moi où j'ai fait une erreur. – Gnanaskandhan