代码之家  ›  专栏  ›  技术社区  ›  Cédric Boivin

directoryinfo、fileinfo和非常长的路径

  •  10
  • Cédric Boivin  · 技术社区  · 15 年前

    我试着和directoryinfo,fileinfo一起工作,路径很长。

    • 我试着用?\ C:\long path(我得到了带有fileinfo和directoryinfo的非法字符)
    • 我尝试使用文件:://c:/long path(不支持我获取的URI)

    我能在小路上或别的什么地方用~吗?

    我读到这个 post 但我想使用另一种调用API的方法。有其他解决办法吗?

    有一篇来自Microsoft的文章可供使用\?在文件路径中 link text

    问题是,对于长度超过256个字符的路径,如何使用超长路径、directoryinfo和fileinfo

    5 回复  |  直到 7 年前
        1
  •  10
  •   bdukes Jon Skeet    15 年前

    看着 Long Paths in .NET blog post series 似乎通过p/invoke访问win32 api是目前唯一的解决方案,而不是重新构造目录以避免达到限制。

        2
  •  11
  •   Neysor    13 年前

    图书馆又有空了 on this location.

    This is a .NET Library 根据.NET Framework 2.0编写,可用于 从.NET应用程序访问非常长的文件夹和文件。

    因为.NET框架不支持长文件名:.-( 我必须编写一个调用win32 API并包装这些API的库 函数类 System.IO . 虽然它不是 IO系统 它确实有很多可用的对象和函数。

    Delimon.Win32.IO 替换的基本文件功能 IO系统 具有长路径名,支持最多32767个字符 所以再见 MAX_PATH 问题

    你有没有遇到过这个问题?

    System.IO.PathTooLongException 未处理。

    信息:

    指定的路径、文件名或两者都太长。充分地 限定文件名必须少于260个字符,并且 目录名必须少于248个字符。

        3
  •  5
  •   TripleAntigen    12 年前

    这个 Delimon.Win32.I​O Library (V4.0) 也可以使用,它是针对.NET Framework 4.0编写的,可以在x86&x64系统上使用。

        4
  •  4
  •   ElvisLives    15 年前

    我过去解决这个问题的方法是使用Delimon中名为delimon.win32.io的库。看起来像他的网站 http://www.delimon.be 目前正在下降。但我过去曾在一个项目中使用过它,它像冠军一样工作。我可以在今晚晚些时候帮你找到它,或者通过谷歌在某个地方找到一个有效的链接。干杯。下面是讨论这个问题的另一个链接。

    http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2541a9b9-acd7-4338-89b1-dfc0408e41b5

        5
  •  1
  •   Robear    7 年前

    从.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/