File SSIS-使用文件
我试图根据文件夹中文件的修改日期(今天的日期)获取所有以Comp开头的文件。有多个名为Comp1、CompAL、Comp50等的文件。 基本上,我有一个包含以下代码的脚本任务:File SSIS-使用文件,file,ssis,task,File,Ssis,Task,我试图根据文件夹中文件的修改日期(今天的日期)获取所有以Comp开头的文件。有多个名为Comp1、CompAL、Comp50等的文件。 基本上,我有一个包含以下代码的脚本任务: public void Main() { DateTime lastModified = DateTime.MinValue; string path = Dts.Variables["User::CompFilePath"].Value.ToString() ;
public void Main()
{
DateTime lastModified = DateTime.MinValue;
string path = Dts.Variables["User::CompFilePath"].Value.ToString() ;
List<FileInfo> LastFiles = new List<FileInfo>();
string[] files = Directory.GetFiles(path);
foreach (string file in files)
{
FileInfo fileinfo = new FileInfo(file);
if ((fileinfo.LastWriteTime > lastModified))
{
lastModified = fileinfo.LastWriteTime;
LastFiles.Add(fileinfo);
Dts.Variables["User::CompFileNames"].Value = fileinfo.ToString();
}
}
public void Main()
{
DateTime lastModified=DateTime.MinValue;
字符串路径=Dts.Variables[“User::CompFilePath”].Value.ToString();
List LastFiles=新列表();
string[]files=目录.GetFiles(路径);
foreach(文件中的字符串文件)
{
FileInfo FileInfo=新的FileInfo(文件);
如果((fileinfo.LastWriteTime>lastModified))
{
lastModified=fileinfo.LastWriteTime;
添加(fileinfo);
Dts.Variables[“User::compfilename”]。Value=fileinfo.ToString();
}
}
然后,我给自己发了一封电子邮件,看看我是否得到了所有的文件,但我只得到了一个文件名,甚至不是Comp文件,大约有50个Comp文件
CompFilePath变量为字符串,值为\SharedDrive\work\
compfilename为空,因此可以存储文件名
首先,您需要将
compfilename
转换为一个可以保存集合的变量,即对象
类型变量。接下来,创建一个名为FileInfoList
的列表
来保存fileInfo.ToString()
要存储在CompFileNames
中并填充此列表的值。完成对文件夹中每个文件的处理后,将FileInfoList
分配给CompFileNames
以填充它
Object
类型的变量可以用作ForEach
容器中的Enumerator
。您可以将Enumerator
类型更改为ForEach From variable
并使用compfilename
作为源变量。然后,创建一个String
变量来保存集合dur中的项调用循环,比如说FileInfoName
,在变量
选项卡中,将索引0映射到该变量。您还没有解释您发送电子邮件的依据是什么……但我可以看到代码中的循环只是将变量CompFileName
的值替换为循环中的文件,每次都替换它。所以这个变量将只包含最后一个文件名。您看过For Each File迭代器了吗?它可能不需要任何代码就能完成您想要的任务。