前置“\\?\”不适用于处理长路径

2023-12-01

我正在尝试找到一种解决 Windows 字符限制的方法,该限制不允许复制文件名 >= 260 个字符的文件。根据这篇 MSDN 文章, if \\?\附加在文件名前面,这将绕过文件名长度限制。

我尝试过这个测试:

string source = "\\\\?\\C:\\Users\\xxxx\\Documents\\Visual Studio 2013\\Projects\\PDFConverterTester\\PDFConverterTester_BatchGUI\\bin\\Debug\\folder1\\a.txt";
string dest= "\\\\?\\C:\\Users\\xxxx\\Documents\\Visual Studio 2013\\Projects\\PDFConverterTester\\PDFConverterTester_BatchGUI\\bin\\Debug\\folder2\\a.txt";            
System.IO.File.Copy(source, dest);

但这引发了一个例外:

Illegal characters in path.

我应该以不同的方式应用这个前缀吗?

编辑:我公司的 IT 政策不允许我在没有经过漫长的审核过程的情况下安装任何新软件,这意味着我无法更新到 4.6.2。所以我试图弄清楚如何通过现有的 Visual Studio .NET 4.5 安装中的 Windows API 调用来解决此问题。


要启用长路径支持,您需要以 .Net Framework 4.6.2(或更高版本)为目标,或者需要告诉您的应用程序它可以支持长文件名。为此,请将其添加到您的 app.config 中:

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

可以进一步阅读here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前置“\\?\”不适用于处理长路径 的相关文章

随机推荐

  • 如何在触摸屏上关闭 Windows 8.1 手势和设置超级按钮栏

    我安装了戴尔触摸屏和 Windows 8 1 单语言 当我将手指从右边缘向中间移动时 Windows 8 将调出设置超级栏 或者当我将手指从中上边缘向下移动时 Windows 8 会隐藏我的应用程序并调出开始菜单 这是一个问题 因为我正在
  • JSON复杂类型,可以是一个对象或对象数组[重复]

    这个问题在这里已经有答案了 我正在尝试处理一个对象 该对象可以是对象数组 也可以只是对象 仅当 naics 是对象而不是数组时 使用下面的代码才有效 我究竟做错了什么 这是我能想到的最短的例子 section 52 219 1 b naic
  • 如何在 Xcode 4.2 上为 IOS 5 创建 UITableView?

    上周我下载了 Xcode 4 2 所以当我开始构建应用程序时 我尝试添加一个UITableView到我的一个项目 就像我开始开发以来一直在做的那样 但是UITableView不工作 我一直在寻找教程 但没有找到任何教程 如何在 Xcode
  • python 基于键匹配合并字典的最快方法

    我有 2 个字典列表 列表 A 长 34 000 列表 B 长 650 000 我本质上是根据键匹配将所有列表 B 字典插入到列表 A 字典中 目前 我正在做显而易见的事情 但这需要很长时间 说真的 就像一天一样 一定有更快的方法 for
  • 如何从秘密管理器获取私钥?

    我需要在 AWS 中存储私钥 因为当我从 AWS 创建 ec2 实例时 我需要使用此主键在配置程序 remote exec 中进行身份验证 我不想保存在存储库 AWS 中 在 Secret Manager 中保存私钥是个好主意吗 然后吃掉它
  • 调用存储过程 Mysql 时命令不同步

    我有两个存储过程 我需要对记录进行分页 比如选择下一个n记录 到选择所有匹配记录的第一个 CREATE PROCEDURE trans all IN varphone VARCHAR 15 BEGIN Select loans amt lo
  • 如何将 dicom 文件转换为 jpg

    我们如何使用java将dicom文件 dcm 转换为jpeg图像 这是我的代码 import java io File import java io IOException import org dcm4che2 tool dcm2jpg
  • Inno Setup 中的全屏背景图像

    如何在 Inno Setup 编译器中为我们的设置提供背景全屏图像 就像下面这张图一样 不要那样做 这违反了 Windows 设计准则 无论如何 如果必须的话 请使用旧版全屏安装程序模式WindowVisible yes指示然后通过修改 现
  • 在 JupyterLab 中扩展代码片段的键盘快捷键

    有谁知道如何创建一个快捷方式 将特定代码粘贴到选定的单元格或将片段扩展为代码块 例如 当按下类似的内容时 我想用有用的导入列表填充单元格Ctrl Shift M 这会将单元格内容扩展为 import numpy as np import p
  • 将多个 Bootstrap 菜单合并为一个移动设备菜单?

    我一直在看这个之前提出的问题 在折叠时合并多个 Bootstrap 3 导航栏菜单 正如您所见 它为这个问题提供了一个很好的解决方案这把小提琴 问题是对于我当前的布局来说 这个解决方案并不完美 它的显示方式如下 它适用于我想的其他场景 但在
  • Jw播放器视频分析,无需上传视频

    是否可以在不将内容上传到 jw 播放器的情况下进行视频分析 取决于您想在哪里查看分析 如果您想在您的JW 玩家帐户仪表板 您需要上传视频或添加外部内容 URL 请参见https support jwplayer com customer p
  • 在ios上混合音频

    我正在尝试混合音频源 这样就不会出现音频闪避 我试图解决的用例是在后台进行音频通话 同时播放音乐和 或收听应用程序音频 没有任何音频闪避 音频闪避是指音频稍微降低并失真以帮助收听另一个音频会话 我可以取消音频和音频混合 或 iOS 吗 我已
  • Rails:“权限被拒绝 - /tmp/cache/assets/development/sprockets/...”?

    当我运行 Rails 应用程序并使用浏览器导航到它们时 我收到错误rails Permission denied path to my rails app tmp cache assets development sprockets 37b
  • Android 无尽列表

    如何创建一个列表 当您到达列表末尾时我会收到通知 以便我可以加载更多项目 一种解决方案是实施OnScrollListener并进行更改 例如添加项目等 ListAdapter处于方便的状态onScroll method 下列ListActi
  • 从 Visual Studio 将文件添加到 WP7 独立存储?

    我正在开发一个 Windows Phone 7 应用程序 我将在其中使用 bing 地图显示您所在位置的 ATM 我有一个包含地址和 GPS 坐标的 xml 文件 但是如何从 Visual Studio 将此文件添加到我的程序中 如果我将
  • 关闭连接之前关闭阅读器

    您是否应该始终在关闭连接之前关闭 DataReader 还是直接关闭连接就可以了 通过关闭连接是否会有效地关闭读者 这是针对 c net 3 5 的 Thanks 除了明确你的意图之外 Microsoft 文档中还提到了这一点 使用 Dat
  • Chrome 上的 Angular2 Table Row 组件以单列显示

    使用中的版本 角2 0 1 角度 cli 1 0 0 beta 17 我有一个页面分为 3 个组件 页面大纲是一个具有自己的布局 包括行 的表格 其中一行包含行组件 在 IE 中 表格显示良好 在 Chrome 中 组件行中的所有数据都显示
  • ObjectContext 实例已被释放 - Winforms Entity Framework

    I am trying to solve this problem and did read content regarding this error but was unable to figure out a solution I am
  • 如何为postgres docker容器的初始化脚本指定当前工作数据库?

    众所周知 可以使用类似于以下命令的 docker 命令复制要在创建容器时执行的 init sql 文件 COPY init sql docker entrypoint initdb d 让我们考虑使用一个非常简单的 create table
  • 前置“\\?\”不适用于处理长路径

    我正在尝试找到一种解决 Windows 字符限制的方法 该限制不允许复制文件名 gt 260 个字符的文件 根据这篇 MSDN 文章 if 附加在文件名前面 这将绕过文件名长度限制 我尝试过这个测试 string source C User