gpt4 book ai didi

SSIS 脚本任务目录中使用的 c# FileInfo 类。GetFiles SearchOption.TopDirectoryOnly 被忽略

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:56 25 4
gpt4 key购买 nike

我正在使用以下脚本任务来枚举文件目录,然后提取文件列表并将它们加载到记录集目标中。我不想深入到我在搜索中指定的目录@"E:\Data Warehouse\Imports\TIMECLOCK"。 TIMECLOCK 中有一个名为 PROCESSED 的后续文件夹,它应该稍后将文件移动到其中。所以我只是想抓取上面文件夹中的那些,TIMECLOCK。因此,我在 Directory.GetFiles 函数中使用了 SearchOption.TopDirectoryOnly,但它会向下钻取到 PROCESSED 文件夹,正如我的数据查看器所证明的那样(请参阅代码后的数据 View 屏幕截图)。一开始我是用一个变量传入搜索目录,但它做的是一样的,所以我显式声明了搜索目录,还是不行。我不知道我做错了什么!

#region Namespaces
using System;
using System.Data;
using System.IO;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
#endregion


[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent{

public override void CreateNewOutputRows()
{
string sourceDirectory = @"E:\Data Warehouse\Imports\TIMECLOCK";
string searchFileName = "Business Units GL Segments_Sent Weekly*";
string[] files = Directory.GetFiles(sourceDirectory, searchFileName, SearchOption.TopDirectoryOnly);

FileInfo fileInfo = new FileInfo(sourceDirectory);

foreach (string file in files)
{
String FileFullPath = Path.GetFullPath(file);
fileInfo = new FileInfo(FileFullPath);
OrderedFilesBuffer.AddRow();
OrderedFilesBuffer.FileName = fileInfo.Name;
OrderedFilesBuffer.FileDate = fileInfo.LastWriteTime;
OrderedFilesBuffer.FilePath = fileInfo.FullName;
}
}
}

DataViewer

最佳答案

我标记为已回答,因为我仍然完全不确定为什么会发生这种情况,我最终决定通过将值写入 (2) 个文件对象,然后合并并获得一个唯一的文件列表来重现我想要重现的内容在它们之间进行处理,实际上只是一个简单的文件移动任务。我正在为一个客户写这篇文章,他最初是在 Pentaho Data Integration 中以这种方式设计的,并且在 SSIS 中完全复制了它,而这并不是真正必要的。我想因为我在同一个控制流中同时运行这两个提取,所以它对两者使用相同的文件路径,因为某种缓存问题并忽略了 TopDirectoryOnly。无论如何,我把它扔掉了,然后重新做了整个事情。

关于SSIS 脚本任务目录中使用的 c# FileInfo 类。GetFiles SearchOption.TopDirectoryOnly 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53806463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com