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

Azure Data Factory长文件路径读取问题求助

解决ADF通过SHIR读取长路径文件的方案

针对你遇到的ADF复制活动因路径过长无法读取文件的问题,以下是几个无需修改客户文件夹结构的可行方案:

方案1:使用SUBST映射驱动器

在SHIR所在的客户VM上,通过subst命令将长路径的父目录映射为一个驱动器字母,缩短ADF中配置的路径长度:

  • 执行命令:subst Z: "C:\very\long\path\structure\to\customer\root-folder"
  • 之后ADF链接服务中只需配置Z:\subfolder\target-file.xlsx即可访问目标文件
  • 若需重启VM后保持映射,可将该命令添加到Windows开机启动项(通过任务计划程序或注册表)

方案2:创建NTFS软链接

在VM上为长路径文件夹创建短路径的软链接,让ADF通过短链接访问目标文件:

  • 执行命令:mklink /D C:\ShortLink "C:\very\long\path\structure\to\customer\root-folder"
  • ADF中使用C:\ShortLink\subfolder\target-file.xlsx作为文件路径
  • 确保SHIR的运行账户同时拥有软链接和目标文件夹的读写权限

方案3:修改SHIR配置文件启用长路径支持

即使组策略已启用长路径,SHIR进程可能未加载相关配置,需手动修改其配置文件:

  1. 找到SHIR安装目录(默认路径:C:\Program Files\Microsoft Integration Runtime\5.0\Gateway)
  2. 编辑Microsoft.DataTransfer.Gateway.Service.exe.config,在<configuration>节点内添加:
<runtime>
  <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>
  1. 重启Microsoft Integration Runtime Gateway Service服务

方案4:通过PowerShell前置活动中转文件

在ADF管道中添加PowerShell自定义活动,先将长路径文件复制到VM本地的短路径临时目录,再让复制活动读取临时文件:

  • PowerShell脚本示例(使用\\?\前缀支持长路径):
# 复制长路径文件到临时目录
Copy-Item -Path "\\?\C:\very\long\path\structure\to\customer\folder\subfolder\file.xlsx" -Destination "C:\ADFTemp\file.xlsx" -Force

# 复制完成后可添加清理逻辑(可选)
# Remove-Item -Path "C:\ADFTemp\file.xlsx" -Force -ErrorAction SilentlyContinue
  • 复制活动的源路径配置为临时目录的短路径,复制完成后可通过后续活动清理临时文件

内容的提问来源于stack exchange,提问作者Matías Daniel Bertuzzi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:22:14