web-dev-qa-db-fra.com

Tâche de script SSIS pour vérifier si le fichier existe ou non dans un dossier

Je veux vérifier si un fichier existe dans un dossier particulier de SSIS. Comment puis-je accomplir cela?

11
user1429135

Variables:

dossier - chaîne - C ::\Temp \

fichier - chaîne - 1.txt

fileExists - boolean - False

public void Main()
{
    string folder = Dts.Variables["User::folder"].Value.ToString();     //@"C:\temp\";
    string file = Dts.Variables["User::file"].Value.ToString();         //"a.txt";
    string fullPath = string.Format(@"{0}\{1}", folder, file);

    Dts.Variables["User::fileExists"].Value = File.Exists(fullPath);

    Dts.TaskResult = (int)ScriptResults.Success;
}
10
Anoop Verma

Vous pouvez utiliser Foreach Loop Container et y placer simplement tous vos articles. Il sera exécuté si le fichier existe et ne le sera pas sinon. Très simple :) 

6
Andrey Morozov

Au lieu d’avoir une variable «out», vous pouvez également modifier le Dts.TaskResult en fonction de l’existence ou non du fichier. L'extrait ci-dessous fait échouer la tâche de script si le fichier n'existe pas. (Il crée également une entrée de journal si la journalisation est activée.)

public void Main()
{
    string fileName = Dts.Variables["User::sourcePath"].Value.ToString() + Dts.Variables["User::fileName"].Value.ToString();

    if (File.Exists(fileName))
    {
        Dts.TaskResult = (int)ScriptResults.Success;
    } 
    else 
    {
        Dts.Log(string.Format("File {0} was not found.",fileName),0,null);
        Dts.TaskResult = (int)ScriptResults.Failure;
    }

}
2
RubberDuck

SSIS ne peut effectuer cette vérification à l'aide de tâches natives, mais vous pouvez le faire à l'aide d'une tâche de script, mais je vous suggère de vérifier les liens suivants pour connaître la procédure simple à suivre pour y parvenir.

http://www.bidn.com/blogs/DevinKnight/ssis/76/does-file-exist-check-in-ssis

http://sqlmag.com/sql-server-integration-services/simple-effective-way-tell-whether-file-exists-using-ssis-package

1
StackTrace