如何高效克隆大量文件并确保数据一致性?
- 内容介绍
- 文章标签
- 相关推荐
本文共计273个文字,预计阅读时间需要2分钟。
我想要创建一个与原文件相同的文件副本,我知道如何在新建文件中复制文件内容,但不知道如何复制文件属性和日期。我尝试了以下代码,但它在Delphi 2009中不起作用:
delphiSrcHandle :=CreateFile(PWideChar('\\\\?\\ + S + \'), FILE_READ_ATTRIBUTES, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
我想制作一个相同的文件副本,我知道如何在新文件中复制文件的内容,但我不知道如何复制属性和日期.我尝试了以下代码,但它在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的最后一个参数是sorce文件的句柄. Delphi说如果我这样做,它会将“属性和扩展属性”复制到新文件中.但它不……
使用IOUtils中的TFile.Copy().操作系统提供文件复制功能,此功能利用它们.此函数调用Windows CopyFile函数.如果您愿意,可以直接打电话.以这种方式复制文件后,将复制所有属性.最后一步是文件时间戳.使用GetFileTime和SetFileTime执行此步骤.
本文共计273个文字,预计阅读时间需要2分钟。
我想要创建一个与原文件相同的文件副本,我知道如何在新建文件中复制文件内容,但不知道如何复制文件属性和日期。我尝试了以下代码,但它在Delphi 2009中不起作用:
delphiSrcHandle :=CreateFile(PWideChar('\\\\?\\ + S + \'), FILE_READ_ATTRIBUTES, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
我想制作一个相同的文件副本,我知道如何在新文件中复制文件的内容,但我不知道如何复制属性和日期.我尝试了以下代码,但它在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的最后一个参数是sorce文件的句柄. Delphi说如果我这样做,它会将“属性和扩展属性”复制到新文件中.但它不……
使用IOUtils中的TFile.Copy().操作系统提供文件复制功能,此功能利用它们.此函数调用Windows CopyFile函数.如果您愿意,可以直接打电话.以这种方式复制文件后,将复制所有属性.最后一步是文件时间戳.使用GetFileTime和SetFileTime执行此步骤.

