我尝试使用具有很长路径的DirectoryInfo,FileInfo。
我可以在路径或其他地方使用〜。
我读了这个post,但我想用另一种调用API的方式。是其他任何解决方案吗?
微软有一篇文章可供使用\\?在文件路径link text
中问题是如何使用非常长的路径,DirectoryInfo和FileInfo的路径谁更长的256 char
答案 0 :(得分:11)
图书馆再次可用on this location.
This is a .NET Library针对.NET Framework 2.0编写,可以用来 从.NET应用程序访问非常长的文件夹和文件。
由于.NET Framework不支持长文件名:-(
我必须编写一个调用WIN32 API并包装它们的库
像System.IO
这样的函数。虽然它不是一个完整的复制品
System.IO
它确实有大多数对象和函数可用。
Delimon.Win32.IO
取代System.IO
的基本文件功能
长路径名称支持最多32,767个字符的字符
所以再见MAX_PATH
问题
你遇到过这个问题吗?
System.IO.PathTooLongException
未得到处理。
消息:
指定的路径,文件名或两者都太长。完全 限定文件名必须少于260个字符,并且 目录名称必须少于248个字符。
答案 1 :(得分:10)
查看Long Paths in .NET blog post series,看起来通过P / Invoke转到Win32 API是目前唯一的解决方案,除了重构目录以便你不要达到极限。
答案 2 :(得分:5)
Delimon.Win32.IO Library (V4.0) 也可用,它是针对.NET Framework 4.0编写的,可以在x86和x86上使用。 x64系统。
答案 3 :(得分:4)
我过去解决这个问题的一种方法是使用Delimon中名为Delimon.Win32.IO的库。看起来他的网站http://www.delimon.be目前正在关闭。但我过去曾在一个项目中使用它,它就像一个冠军。我可以尝试在今晚稍后为您追踪它,或者只是尝试通过谷歌找到它的某个有效链接。干杯。这是讨论这个问题的另一个链接。
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2541a9b9-acd7-4338-89b1-dfc0408e41b5
答案 4 :(得分:1)
从.NET 4.6.2开始,可以通过更改本地计算机的组策略来解决此问题,从而允许Win 10+和Server 2016 +上的长路径。
经过测试和确认。
https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/