在 SSIS 中,一个文件夹中有许多平面文件,通过使用每个循环容器,我们将一个一个地处理它。如果文件夹中放置了任何新文件并且仍处于复制模式。那么,我们不应该把它作为继续过程。我们应该仅将完全复制的文件单独处理到我们的下一个过程。
我们怎样才能做到这一点?请提出您的建议。
在 SSIS 中,一个文件夹中有许多平面文件,通过使用每个循环容器,我们将一个一个地处理它。如果文件夹中放置了任何新文件并且仍处于复制模式。那么,我们不应该把它作为继续过程。我们应该仅将完全复制的文件单独处理到我们的下一个过程。
我们怎样才能做到这一点?请提出您的建议。
我过去这样做的最佳方法是使用 C# 脚本任务并尝试打开文件 - 如果文件仍在被复制,您将收到错误(您会捕获)。然后,您可以设置一个布尔变量,如果 Open 有效,则有条件地处理文件。
例如:布尔 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;
}
}