当前位置:  开发笔记 > 编程语言 > 正文

如何创建长度超过260个字符的文件的副本

如何解决《如何创建长度超过260个字符的文件的副本》经验,为你挑选了1个好方法。

如何使用vb.net创建长度超过260个字符的文件的副本,包括文件名

当我们尝试使用File.Copy方法创建副本时,它会抛出异常,如下所示:

"指定的路径,文件名或两者都太长.完全限定的文件名必须少于260个字符,目录名必须少于248个字符."

有可能吗,请帮忙......



1> Matt Ellis..:

你遇到了MAX_PATH限制.作为解决方法,您应该能够直接P/Invoke到kernel32.dll的CopyFile函数,并使用目标路径前面的"\\?\"前缀来防止遇到MAX_PATH问题.

请注意,虽然您能够以大多数应用程序无法打开它的方式复制文件,因为它们也受到MAX_PATH的限制.

可以在这里找到问题的一个很好的概述:http://blogs.msdn.com/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton的.aspx

使用C#调用这些方法的一些示例代码可以在第2部分中找到,这里是:http://blogs.msdn.com/bclteam/archive/2007/03/26/long-paths-in-net-part -2-的-3-长路径的解决方法,KIM-hamilton.aspx

schnaader 链接到的库看起来会省去P/Invoking到kernel32.dll的问题,不确定是否要依赖外部dll.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有