10

我需要让我的 delphi 应用程序能够检查使用 Robocopy 复制的文件在其路径超过 255 个字符时是否存在。我已经尝试过通常的“If FileExists(MyFile) then ...”,但即使文件在那里,它也总是返回“false”。

我也尝试获取文件的日期,但我得到了 1899/12/30,这可以被视为一个空日期。

文件搜索也不返回任何内容。

4

1 回答 1

10

为文件名加上前缀\\?\以启用扩展长度的路径解析。例如你会写

if FileExists('\\?\'+FileName) then
  ....

请注意,这仅在您调用 Win32 API 函数的 Unicode 版本时才有效。因此,如果您使用 Unicode Delphi,那么这将完成这项工作。否则,您将不得不推出您自​​己的FileExists调用 API 函数的 Unicode 版本的版本。

这些问题在 MSDN 上进行了详细讨论:命名文件、路径和命名空间

于 2013-06-01T15:24:05.707 回答