我需要让我的delphi应用程序能够检查当路径超过255个字符时是否存在使用Robocopy复制的文件。 我尝试了通常的“如果FileExists(MyFile)然后...”但它总是返回“false”,即使文件在那里。
我也尝试获取文件的日期,但我得到了1899/12/30,这可以被视为空日期。
文件搜索也不会返回任何内容。
答案 0 :(得分:9)
使用\\?\
作为文件名前缀,以启用扩展长度路径解析。例如,你会写
if FileExists('\\?\'+FileName) then
....
请注意,这仅在您调用Win32 API函数的Unicode版本时才有效。因此,如果您使用Unicode Delphi,那么这将完成这项工作。否则,您将不得不推出自己的FileExists
版本,该版本调用API函数的Unicode版本。
在MSDN上详细讨论了这些问题:Naming Files, Paths, and Namespaces。