know - validate if exist file c#
Tarea Script de SSIS para verificar si el archivo existe en la carpeta o no (4)
Quiero verificar si existe un archivo en una carpeta particular de SSIS. ¿Cómo puedo lograr esto?
No hay tareas nativas dentro de SSIS que puedan hacer esta comprobación, pero puede lograr esto utilizando una tarea de secuencia de comandos, pero le sugiero que consulte los siguientes enlaces para conocer los pasos simples necesarios para lograrlo.
http://www.bidn.com/blogs/DevinKnight/ssis/76/does-file-exist-check-in-ssis
Variables:
carpeta - cadena - C :: / Temp /
archivo - cadena - 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;
}
Como alternativa a tener una variable de "salida", también puede Cambiar el Dts.TaskResult
según si el archivo existe o no. El siguiente fragmento falla la tarea de script si el archivo no existe. (También crea una entrada de registro si el registro está habilitado).
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;
}
}
Puede usar Foreach Loop Container
y simplemente colocar todos sus artículos en él. Se ejecutará si el archivo existe y no lo hará si no. Muy simple :)