【发布时间】:2017-05-23 18:04:33
【问题描述】:
IOUtils.TDirectory.GetDirectoryRoot(Folder) 在“文件夹”长度为 259 个字符时给我一个错误(是的,它在末尾包含 \ 分隔符):
Project Tester.exe 引发异常类 EPathTooLongException message '指定的路径太长'。
为什么 GetDirectoryRoot 不接受 Max_Path 字符的路径?
【问题讨论】:
-
我的路径是 259 个字符。因此,#0 终止符有一个额外的字符可用。但无论如何,我在德尔福工作。 Delphi 不在字符串中使用 #0 终止符。
-
我假设这是在幕后调用 Windows api 函数,在这种情况下,最终需要空终止符。仍然没有解释为什么 259 太长。可能与具体路径有关。
-
我受够了 IOUtils 库。它的错误比代码行多。编程语言的生产者如何在市场上发布完全没有功能的库?他们是如何通过这个产品从我们这里榨取这么多钱的?抱歉……其实我知道……他们强迫我们购买那些该死的“更新订阅”
-
众所周知的设计缺陷,从 .net 库 IIRC 复制而来。最好自己动手。 IOUtils 不好。 Windows 10 现在允许您完全绕过该限制,并且您始终可以使用 `\\?` 前缀来允许更长的路径。
-
我不认为这是他们打算解决的问题,因为他们认为这是设计好的
标签: delphi delphi-xe7 ioutils delphi-strings