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

.NET 4.7.2 WinForm长路径文件操作失败,如何启用长路径支持?

解决VB.NET WinForm长路径操作失败问题

针对你遇到的长路径操作失败问题,结合.NET 4.7.2的特性,按以下步骤逐一排查解决:

1. 配置应用程序支持长路径

在项目的app.config文件中添加以下配置,明确禁用旧版路径处理逻辑,启用长路径支持:

<configuration>
  <runtime>
    <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
  </runtime>
</configuration>

这一步是.NET 4.7+启用长路径支持的核心配置,仅设置注册表无法让应用生效。

2. 验证注册表设置并重启系统

确保HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled是DWORD类型,值为1,并且完成设置后重启电脑——注册表更改需要系统重启才能完全生效。

3. 优化代码中的路径处理

(1)可选:添加长路径前缀

如果部分API仍存在兼容性问题,可尝试给绝对路径添加\\?\前缀(仅支持绝对路径):

' 给文件夹路径添加长路径前缀
Dim folderPath = "\\?\" & args.folderPath
' 统一路径分隔符为反斜杠
folderPath = folderPath.Replace("/", "\")

(2)使用枚举类替代GetFiles

将Directory.GetFiles替换为Directory.EnumerateFiles,后者在处理大量文件或长路径时更高效且兼容性更好:

Dim pdfFiles As List(Of String) = Directory.EnumerateFiles(folderPath, "*.pdf").OrderBy(Function(f) f).ToList()

4. 确认项目目标框架

检查项目属性,确保目标框架设置为**.NET Framework 4.7.2**(而非更低版本),只有4.7及以上版本原生支持长路径特性。

5. 权限验证

确保运行应用的用户对目标文件夹拥有读取、写入、修改权限,避免因权限不足导致操作失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:17:18