Je veux vérifier si un fichier existe dans un dossier particulier de SSIS. Comment puis-je accomplir cela?
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;
}
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 :)
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;
}
}
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