确定文件是否为空(SSIS)

Dou*_*J92 4 ssis sql-server-2005

我正在尝试在SSIS 2005中开发一个包,我的一部分过程是检查网络上的文件是否为空.如果它不是空的,我需要传递成功的状态,否则,我需要传递一个不成功的状态.我想我需要一个脚本任务,但我不确定如何去做.任何帮助表示赞赏.

jim*_*415 11

在"连接管理器"面板中创建与平面文件的连接.在"控制流"选项卡下,添加"数据流任务". 在此输入图像描述

双击"数据流"任务,然后添加"平面文件源"和"行计数"项. 在此输入图像描述

在"行计数"属性中,创建一个RowCount变量. 在此输入图像描述

在"控制流"选项卡中,根据@RowCount的结果创建控制流连接. 在此输入图像描述


gra*_*oon 0

是的,脚本任务可以完成这里的工作。将 using System.IO 语句添加到脚本顶部,然后 Main 方法中的以下内容将检查文件的内容。

        public void Main()
    {
        String FilePath = Dts.Variables["User::FilePath"].Value.ToString();

        String strContents;
        StreamReader sReader;
        sReader = File.OpenText(FilePath);
        strContents = sReader.ReadToEnd();
        sReader.Close();
        if (strContents.Length==0)
            MessageBox.Show("Empty file");

        Dts.TaskResult = (int)ScriptResults.Success;
    }
Run Code Online (Sandbox Code Playgroud)

编辑:2005 年的 VB.Net 版本...

    Public Sub Main()

    Dim FilePath As String = Dts.Variables("User::FilePath").Value.ToString()
    Dim strContents As String
    Dim sReader As StreamReader

    sReader = File.OpenText(FilePath)
    strContents = sReader.ReadToEnd()
    sReader.Close()
    If strContents.Length = 0 Then
        MessageBox.Show("Empty file")
    End If

    Dts.TaskResult = ScriptResults.Success
End Sub
Run Code Online (Sandbox Code Playgroud)