Delphi:如何检查文件是否存在(路径超过255个字符)

时间:2013-06-01 15:12:03

标签: delphi winapi

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

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

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

1 个答案:

答案 0 :(得分:9)

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

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

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

在MSDN上详细讨论了这些问题:Naming Files, Paths, and Namespaces