如何找到当前正在更新记录的平面文件

时间:2015-09-15 10:09:04

标签: sql-server-2008 ssis sql-server-2012 ssis-2012 ssis-2008

在SSIS中 在一个文件夹中有许多平面文件,通过使用每个循环容器,我们将逐个处理它。如果文件夹中放置了任何新文件,它仍处于复制模式。然后,我们不应该把它用于继续进程。我们应该只处理完全复制的文件到我们的下一个过程。

我们怎样才能做到这一点?请提出你的建议。

1 个答案:

答案 0 :(得分:2)

我过去做过这个的最好方法是使用C#Script Task并尝试打开文件 - 如果文件仍然被复制,你将收到一个错误(你捕获)。然后,如果Open工作,你可以设置一个布尔变量来有条件地处理文件。

EG:             布尔值b = true;

        FileStream f;

        try
        {
            f = new FileStream("C:\\Test\\Test.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.None);
        }
        catch (IOException e)
        {
            if (e.Message == "hello")
            {
                b = false;
            }
        }