![]() |
|
|
Регистрация | << Правила форума >> | 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)
|