我正在嘗試制作一個基于備份資料的應用程式。我想添加一個選項來復制檔案夾及其內容,同時僅忽略子檔案夾。
我TDirectory.Copy('C:\folder','C:\folder2');用來復制檔案夾,但除了要復制的目錄和要復制的位置之外,沒有其他資料請求。
那么,有沒有簡單的方法來實作這一目標?
一個可以被呼叫的函式也可以作業。
uj5u.com熱心網友回復:
它并不完美,但您可以基于此制定自己的例程:
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% 傻瓜/防彈,所以如果有必要,你必須根據你的需要調整它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/322347.html
標籤:德尔福
