c# - 如何使用 SSIS 检测文件夹中是否有任何文件?
问题描述
我每天都会收到一个具有特定模式和扩展名的文件,我想在特定进程下运行它。我想检查我的文件夹中是否有任何文件,否则我将执行另一项任务。到目前为止,我发现您可以使用脚本任务并执行 File.Exist。但是,我做错了,因为它没有将 * 作为通配符。Devoluciones_source 是“C:\Users\us1\Folder\” FileToSearch 是“return”
我的文件:return_20200102.csv return_20200203.csv
String Filepath = Dts.Variables["$Project::Devoluciones_source"].Value.ToString() + Dts.Variables["User::FileToSearch"].Value.ToString() + "*csv";
if (
File.Exists(Filepath))
{
Dts.Variables["User::IsFound"].Value = 1;
}
解决方案
我不认为 File.Exits() 接受通配符,它检查文字文件路径并返回 false 因为C:\Users\us1\Folder\*.csv
找不到。
您可以做的是获取文件夹中的文件C:\Users\us1\Folder\
并使用 searchPattern 再次检查这些文件Directory.GetFiles(path, searchPattern)
像这样:
string dirPath = Dts.Variables["$Project::Devoluciones_source"].Value.ToString();
string fileName = Dts.Variables["User::FileToSearch"].Value.ToString();
// if you want to make sure the directory exists:
if(Directory.Exists(dirPath) {
string[] files = Directory.GetFiles(dirPath, fileName + "*.csv");
if(files.lenght > 0) {
// you can now iterate over each file that is found in the users directory that matches your pattern and do your logic.
}
}
有关 Directory.GetFiles 方法的更多信息:docs.Microsoft.com上的 Directory.GetFiles
有关 Files.Exists 方法的更多信息:Docs.Microsoft.com上的 Directory.GetFiles
推荐阅读
- python - 如何使用正则表达式在单引号之间查找双引号?
- python - 如何在 python 中显示后缀 e+number 的值?
- docker-compose - 我在运行时有一个 docker-compose 文件,我看到以下错误,有人可以帮忙吗
- webrtc - aiortc 服务器示例不在服务器上显示视频
- excel - 在文件夹中的多个 Excel 工作表上附加单个(和多个)工作表
- android - 如何使用数组改造解析 JSON 对象
- java - 在android studio中为具有spring security的spring boot服务器端创建登录名
- php - 我可以在mysql中使用if语句吗?
- database - 在 vertica 数据库中加载大量数据(100 gb)的最快方法是什么?
- json - curl json输出键值到带有jq或grep的变量