![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здраствуйте . Я начинающий.  
		
	
		
		
		
		
		
		
			Создал код , при выполнении которого , при выборе в диалоговом окне папки, она тут же копируется в заданную папку. У меня есть рабочий код, что по заданной маске , копирует файлы 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.Последний раз редактировалось Admin, 26.07.2018 в 20:09.  |