我想制作一个文件的相同副本,并且我知道如何将文件的内容复制到新文件中,但我不知道如何复制属性和日期。
我尝试了以下代码,但它在 Delphi 2009 中不起作用:
SrcHandle:=CreateFile(PWideChar('\\?\'+SrcName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, 0);
DestHandle:=CreateFile(PWideChar('\\?\'+DestName), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, SrcHandle);
请注意,目标 CreateFile
的最后一个参数是源文件的句柄。 Delphi 说,如果我这样做,它会将“属性和扩展属性”复制到新文件中。但事实并非如此……
最佳答案
使用IOUtils
中的TFile.Copy()
。操作系统提供文件复制功能,此功能利用了它们。此函数调用 Windows CopyFile
函数。如果您愿意,可以直接调用它。
以这种方式复制文件后,所有属性都将被复制。最后一步是文件时间戳。使用 GetFileTime
和 SetFileTime
执行此步骤。
关于file - 如何克隆文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25157572/