![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Здравствуйте! 
		
	
		
		
		
		
		
	
		
		
	
	
	Прокопался весь день, но уже наверное туплю, так как не получается сделать копирование файлов из папки. Суть такова. Программа распаковывает из архива папку, которая содержит файлы. Имена как самой папки и так и файлов постоянно разные. Степень вложения (то есть папка в папке) тоже разная. Мне необходимо выбрать из всего количества файлов, только файлы с расширением *.doc и скопировать их в другую папку, допустим Z:\Work. Смотрел в сторону функций модуля System.IOUtils но там необходимо знать исходный (фиг с ним смогу найти) и выходные файлы, также смотрел CopyFile - тоже глухо. Файлов может быть различное количество. Пытался так, не копирует: Код: 
	var
  s: string;
  Sl: TStringList;
  i: Integer;
FindFiles(ExtractFileDir(Application.ExeName) + '\Temp', '*.doc', Memo1.Lines, true);
    Sl := TStringList.Create;
    Sl.Text := Memo1.Text;
    begin
      for i := 0 to Sl.Count - 1 do
      begin
        s := Sl.Strings[i];
        copyfile(PChar(s), PChar('Z:\Work'), True);
      end;
      Sl.Free;
    end;Спасибо.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Сам спросил - сам ответил... 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	var
  FilesList: TStringList;
  i: Integer;
  sNew: string;
begin
  sNew := IncludeTrailingPathDelimiter('путь к папке в которую копируем');
  FilesList := TStringList.Create;
  try
    FilesList.LoadFromFile('имя файла со списком.txt'); //Загружаем список файлов.
    for i := 0 to FilesList.Count - 1 do
    begin
      if not FileExists(FilesList[i]) then 
        Continue; //Минуем не существующие файлы
      if not CopyFile(PChar(FilesList[i]), PChar(sNew + ExtractFileName(FilesList[i])), False) then //Путь назначения + старое имя
        ShowMessage('Ошибка при копировании файла: ' + FilesList[i]);
    end;
  finally
    FilesList.Free;
  end;
end;   | 
| Этот пользователь сказал Спасибо LIONSMILE за это полезное сообщение: | ||
 
Guaho (27.09.2019)
  | ||