首页 > 解决方案 > Array.Length 不能分配给——它是只读的

问题描述

我试图在我的 ssis 包中包含一个脚本任务,该任务不断检查文件夹,直到将指定的文件放置在那里,此时它成功并继续包中的下一步。这是我在脚本任务中使用的代码:

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.IO;

namespace ST_6a16f1bd9a6548ddb82bbf41d5d5006f
{
    [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]

public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{

    public void Main()
    {
        bool foundFile = false;
        string[] files = Directory.GetFiles(@"directory", "*abcd*");

        while (files.Length = 0)
            {
                foundFile = false;
            }

        if (files.Length > 0)
            { 
                foundFile = true;
            }

        if (foundFile == true)
            {
                Dts.TaskResult = (int)ScriptResults.Success;
            }
    }

    enum ScriptResults
    {
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    };

}

但是,当我构建此代码时,我收到错误“无法将属性或索引器 'Array.Length' 分配给 -- 它是只读的”。

标签: c#ssis

解决方案


代替

while (files.Length = 0)

利用

while (files.Length == 0)

您将 0 分配给 files.Length 而不是对其进行测试。


推荐阅读