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

在C#中遇到指定文件夹时如何分割路径

提取指定文件夹起始的路径片段

Python 实现

通过字符串定位目标文件夹的位置,直接截取从该位置开始的路径部分,无需拆分重组整个路径:

def get_path_from_folder(full_path, target_folder):
    # 构造带反斜杠的目标字符串,避免匹配到包含目标名称的其他文件夹
    target_str = f"\\{target_folder}\\"
    idx = full_path.find(target_str)
    if idx != -1:
        # 截取从目标文件夹开始的完整路径片段
        return full_path[idx:]
    # 处理目标文件夹为路径最后一级的特殊情况
    elif full_path.endswith(f"\\{target_folder}"):
        return f"\\{target_folder}"
    # 未找到目标文件夹时返回None
    return None

# 测试示例
path1 = r"C:\AAA\BBB\FolderOfInterest\CCC\file.txt"
path2 = r"C:\AAA\BBB\CCC\FolderOfInterest\DDD\EEE\file.txt"
print(get_path_from_folder(path1, "FolderOfInterest"))  # 输出: \FolderOfInterest\CCC\file.txt
print(get_path_from_folder(path2, "FolderOfInterest"))  # 输出: \FolderOfInterest\DDD\EEE\file.txt

PowerShell 实现

利用正则匹配快速定位目标文件夹,再截取对应路径片段:

function Get-PathFromFolder {
    param(
        [string]$FullPath,
        [string]$TargetFolder
    )
    # 正则匹配目标文件夹(包含前后反斜杠,避免误匹配)
    $match = [regex]::Match($FullPath, "\\$TargetFolder\\?")
    if ($match.Success) {
        return $FullPath.Substring($match.Index)
    }
    # 未找到时返回null
    return $null
}

# 测试示例
$path1 = "C:\AAA\BBB\FolderOfInterest\CCC\file.txt"
$path2 = "C:\AAA\BBB\CCC\FolderOfInterest\DDD\EEE\file.txt"
Get-PathFromFolder -FullPath $path1 -TargetFolder "FolderOfInterest"
Get-PathFromFolder -FullPath $path2 -TargetFolder "FolderOfInterest"

以上方法无需拆分路径为多级目录再重组,直接定位目标文件夹的位置即可完成提取,比手动拆分更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:57:13