Здраствуйте . Я начинающий.
Создал код , при выполнении которого , при выборе в диалоговом окне
папки, она тут же копируется в заданную папку.
У меня есть рабочий код, что по заданной маске , копирует файлы txt с первой директории в другую.
Но вот я не могу сделать так, чтоб первая директория была, как раз выбранная папка в Первом коде.
То есть мне во втором коде нужно как то использовать переменную Dir и приплюсовать к ней маску, этого так и не сделал.

HELP
Статическая папка во втором коде не подходит, так как папка будет каждый раз иметь другое название.
Код:
function CopyDir(fromDir, toDir: string): boolean;
var
fos: TSHFileOpStruct;
todir2: string;
begin
todir2:=todir;
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_COPY;
//fFlags := FOF_FILESONLY;
fFlags:= FOF_SIMPLEPROGRESS;
fflags:= fflags or FOF_NOCONFIRMATION;
fflags:= fflags or FOF_SILENT;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir2);
end;
Result := (0 = ShFileOperation(fos));
end;
const
SELDIRHELP = 1000;
procedure TForm1.btn2Click(Sender: TObject);
var
Dir: string;
SearchRec: TSearchRec;
begin
Dir := 'D:\';
if FileCtrl.SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
CopyDir(PChar (Dir), PChar ('C:\0_TEMP7'));
end;
Админ: Пользуемся тегами при оформлении кода!
Код:
function CopyFiles(Handle: Hwnd; Src: array of string; Dest: string;
Move: boolean; AutoRename: boolean): integer;
var
SHFileOpStruct: TSHFileOpStruct;
SrcBuf: TBuffer;
begin
CreateBuffer(Src, SrcBuf);
with SHFileOpStruct do
begin
Wnd:=Handle;
wFunc:=FO_COPY;
if Move then wFunc:=FO_MOVE;
pFrom:=pointer(SrcBuf);
pTo:=pChar(Dest);
fFlags:=0;
if AutoRename then fFlags:=FOF_RENAMEONCOLLISION;
fAnyOperationsAborted:=false;
hNameMappings:=nil;
lpszProgressTitle:=nil
end;
result:=SHFileOperation(SHFileOpStruct);
SrcBuf:=nil
end;
procedure TForm1.btn3Click(Sender:TObject);
begin
CopyFiles(Handle, ['C:\Users\User\Desktop\test\*.txt'],
'C:\Users\User\Desktop\test2\', true, true);
end;
end.
Админ: Пользуемся тегами при оформлении кода!