You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSIS动态文件夹配置求助:遍历H盘加载指定路径Excel文件

解决SSIS中遍历含固定子文件夹的动态路径问题

嘿,我懂你现在的困扰——要在H盘里揪出所有包含固定"a"文件夹的路径,不管上级的"xy*"文件夹名字怎么变,之前用System.IO.Directory.GetDirectories只拿到第一个结果,完全满足不了需求对吧?别慌,咱们一步步来搞定这个问题:

方法一:递归遍历+精准筛选目标路径

你可以先递归遍历H盘所有目录,再筛选出那些包含"a"子文件夹的路径。这里关键要用上SearchOptions.AllDirectories确保递归到所有层级,再对每个结果做判断:

// 在SSIS脚本任务的Main方法中编写
using System.IO;
using System.Collections.Generic;

public void Main()
{
    List<string> targetPaths = new List<string>();
    // 递归获取H盘下所有目录
    string[] allDirs = Directory.GetDirectories(@"H:\", "*", SearchOption.AllDirectories);
    
    foreach (string dir in allDirs)
    {
        // 检查当前目录下是否存在名为"a"的子文件夹
        if (Directory.Exists(Path.Combine(dir, "a")))
        {
            targetPaths.Add(dir);
        }
    }
    
    // 把结果存入SSIS变量(假设你有一个名为User::TargetFolderPaths的Object类型变量)
    Dts.Variables["User::TargetFolderPaths"].Value = targetPaths;
    Dts.TaskResult = (int)ScriptResults.Success;
}

这个方法能把所有包含"a"子文件夹的路径都捞出来,不管上级目录叫啥名字。

方法二:分层搜索提升效率(适配"xy*"前缀的上级目录)

如果你的上级目录都是以"xy"开头的,那咱们可以缩小搜索范围,先找所有"xy*"文件夹,再在每个里面找"a"文件夹,比全量递归快不少:

public void Main()
{
    List<string> targetPaths = new List<string>();
    // 先抓取H盘下所有xy开头的顶层文件夹
    string[] xyDirs = Directory.GetDirectories(@"H:\", "xy*", SearchOption.TopDirectoryOnly);
    
    foreach (string xyDir in xyDirs)
    {
        // 在每个xy开头的文件夹里递归查找"a"文件夹
        string[] aDirs = Directory.GetDirectories(xyDir, "a", SearchOption.AllDirectories);
        foreach (string aDir in aDirs)
        {
            // 如果需要"a"文件夹的上级路径,就用Path.GetDirectoryName(aDir)
            targetPaths.Add(Path.GetDirectoryName(aDir));
        }
    }
    
    Dts.Variables["User::TargetFolderPaths"].Value = targetPaths;
    Dts.TaskResult = (int)ScriptResults.Success;
}

后续SSIS流程处理

拿到所有目标路径后,你可以用Foreach循环容器遍历这个Object类型的变量,循环内部添加Excel源组件,就能批量加载对应"a"文件夹下的Excel文件了。记得在Foreach循环里选择「Foreach从变量枚举器」,把存储路径列表的变量选进去就行。

内容的提问来源于stack exchange,提问作者Hmen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:46:00