我是SSIS的新手,
每隔30分钟,我将在源目录中收到一个文件或多个文件
我需要遍历这些文件并检查它是否有.csv
或.dat
扩展名:
编辑:我试过了;
Main()
{
try
{
string[] filenames;
filenames = Directory.GetFiles(@"C:Input_Data\");
string FileExtension = Path.GetExtension("filenames");
if (FileExtension == ".DAT" && FileExtension == ".csv")
Dts.Variables["FileExist"].Value = 1;
}
catch
{
Dts.Variables["FileExist"].Value = 0;
}
Dts.TaskResult = (int)ScriptResults.Success;
}
但即使该文件存在.dat
扩展名,它也会返回0并发送警报。
答案 0 :(得分:1)
也许你打算写......
if (FileExtension == ".DAT" || FileExtension == ".csv")
否则它永远不会评估为真。
另外你可能想要某种循环,你当前的结构试图一次访问所有文件(甚至不那么做)
filenames = Directory.GetFiles(@"C:\Input_Data\");
foreach(string filename in filenames)
{
string FileExtension = Path.GetExtension(filename);
if (FileExtension == ".DAT" || FileExtension == ".csv")
Dts.Variables["FileExist"].Value = 1;
}
编辑:
根据我的想法,你的意思是,只有当FileExist只包含DAT和CSV类型且没有其他类型时,你才希望FileExist等于1,在这种情况下你想要反转逻辑。
filenames = Directory.GetFiles(@"C:\Input_Data\");
Dts.Variables["FileExist"].Value = 1;
foreach(string filename in filenames)
{
string FileExtension = Path.GetExtension(filename);
if (FileExtension != ".DAT" && FileExtension != ".csv")
Dts.Variables["FileExist"].Value = 0;
}