如何使用 SSIS 检测文件夹中是否有任何文件?
How can I detect if there is any file in a folder using 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() 不接受通配符,它会检查文字文件路径并将 return false 因为找不到 C:\Users\us1\Folder\*.csv
。
您可以做的是获取文件夹 C:\Users\us1\Folder\
中的文件并使用 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 方法的更多信息:Directory.GetFiles on docs.Microsoft.com
关于 Files.Exists 方法的更多信息:Directory.GetFiles on docs.Microsoft.com
我每天都会收到一个具有特定模式和扩展名的文件,我想 运行 在特定过程中处理。我想检查我的文件夹中是否有任何文件,否则我将执行另一项任务。到目前为止,我发现您可以使用脚本任务并执行 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() 不接受通配符,它会检查文字文件路径并将 return false 因为找不到 C:\Users\us1\Folder\*.csv
。
您可以做的是获取文件夹 C:\Users\us1\Folder\
中的文件并使用 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 方法的更多信息:Directory.GetFiles on docs.Microsoft.com
关于 Files.Exists 方法的更多信息:Directory.GetFiles on docs.Microsoft.com