我正试图使一个应用程序是基于备份数据。我想添加一个选项,以复制文件夹的内容,而忽略子文件夹只。我使用TDirectory.Copy('C:\folder','C:\folder2');来复制文件夹,但除了要复制的目录和复制到哪里之外,没有请求其他数据。那么,有没有一个简单的方法来实现这一点?一个可以调用的函数也可以工作。
TDirectory.Copy('C:\folder','C:\folder2');
dvtswwa31#
它并不完美,但你可以在此基础上制定自己的日常生活:
procedure TForm2.Button1Click(Sender: TObject); var aSourceDir : String; aDestDir : String; aFileList : TStringDynArray; iFile : Integer; aSourceFileName : String; aDestFileName : String; begin aSourceDir := 'C:\DEV\GitRepositories\TestProjects\WithStatementSample\'; aDestDir := 'C:\DEV\GitRepositories\TestProjects\WithStatementSample2\'; aFileList := TDirectory.GetFiles( aSourceDir ); if not ( TDirectory.Exists( aDestDir ) ) and ( Length( aFileList ) > 0 ) then begin TDirectory.CreateDirectory( aDestDir ); end; for iFile := 0 to Pred( Length( aFileList ) ) do begin aSourceFileName := aFileList[ iFile ]; aDestFileName := IncludeTrailingPathDelimiter( aDestDir ) + ExtractFileName( aFileList[ iFile ] ); TFile.Copy( aSourceFileName, aDestFileName ); end; end;
这将简单地遍历在源目录中找到的每个文件,并将其复制到目标目录。它不会复制文件夹,也不会复制文件夹的内容。同样,它不是100%傻瓜/防弹虽然,所以你将不得不适应您的需要,如果必要的。
fykwrbwg2#
Delphi XE2专业版这将打开Command.com,并将整个文件夹及其子文件夹和所有文件复制到另一个驱动器,然后消失。
WinExec(PAnsiChar('XCopy C:\Dir1 E:\Dir1 /E /H /C /I'),SW_SHOWNORMAL);
接下来...这将打开Command.com,并将整个文件夹及其子文件夹和所有文件复制到同一驱动器上名为C:\NewDir的现有文件夹中。生成的C:\NewDir将包含名为Dir1的文件夹及其所有子文件夹和文件。
WinExec(PAnsiChar('XCopy C:\Dir1 C:\NewDir /E /H /C /I'),SW_SHOWNORMAL);
2条答案
按热度按时间dvtswwa31#
它并不完美,但你可以在此基础上制定自己的日常生活:
这将简单地遍历在源目录中找到的每个文件,并将其复制到目标目录。它不会复制文件夹,也不会复制文件夹的内容。
同样,它不是100%傻瓜/防弹虽然,所以你将不得不适应您的需要,如果必要的。
fykwrbwg2#
Delphi XE2专业版
这将打开Command.com,并将整个文件夹及其子文件夹和所有文件复制到另一个驱动器,然后消失。
接下来...
这将打开Command.com,并将整个文件夹及其子文件夹和所有文件复制到同一驱动器上名为C:\NewDir的现有文件夹中。生成的C:\NewDir将包含名为Dir1的文件夹及其所有子文件夹和文件。