我试图使用正则表达式在SSIS中使用脚本任务从文件名中获取变量。我发现了以下一些代码,但是有些函数似乎无法识别:
List<string> filePatterns = null;
public void Main()
{
filePatterns = new List<string>();
filePatterns.Add("Folder1");
filePatterns.Add("Folder2");
string fileName = Path.GetFileNameWithoutExtension(
Dts.Variables["User::LoopFiles"].Value.ToString());
Match match = Regex.Match(fileName, string.Join("|",
filePatterns.ToArray()));
Dts.Variables["User::FolderName"].Value = match.Value;
Dts.TaskResult = (int)ScriptResults.Success;
}
列表和匹配都返回
类型或命名空间名称&#39;列表&#39;找不到(你错过了使用指令或汇编引用吗?)
此外,路径返回名称&#39;路径&#39;在当前背景下不存在。
我想我错过了某种类型的库,但我想知道在哪里找到它以及如何引用它。
答案 0 :(得分:1)
列表是一个通用集合,因此您需要添加对命名空间的引用System.Collections.Generic
路径来自System.IO命名空间,因此您也需要对此进行引用。
匹配来自System.Text.RegularExpressions
应该不需要添加对程序集本身的显式引用,因此您需要将以下内容添加到初始using语句中。
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
请注意,2.0框架可以使用Generics (需要引用),因此您需要更改SSIS Script Task的项目以使用3.5框架。