Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.07.2006, 22:40
Аватар для Sowa
Sowa Sowa вне форума
Прохожий
 
Регистрация: 15.05.2006
Сообщения: 6
Репутация: 10
По умолчанию Копирование директории в цикле ????

Имеется функция копирования директории.
Необходимо скопировать несколько директорий в теле цикла.

for j:=0 to List.Count-1 do
CopyDir(List.Strings[j], 'C:\')
При таком варианте копируется только 1-ая директория, на остальных выпадает ошибка. Что делать?
Ответить с цитированием
  #2  
Старый 18.07.2006, 23:13
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Покажи код полностью...
Ответить с цитированием
  #3  
Старый 19.07.2006, 19:07
Аватар для Sowa
Sowa Sowa вне форума
Прохожий
 
Регистрация: 15.05.2006
Сообщения: 6
Репутация: 10
По умолчанию

//функция копирования директорий
function CopyDir(const fromDir, toDir: string): Boolean;
var
fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
j:integer;
List:TStringList;
begin
List:=TStringList.create;
//Далее идет забивание Listа путями к директориям
for j:=0 to List.Count -1 do
if CopyDir(List.Strings[j], 'C:\') = True then
ShowMessage('файлы скопированы');
end;
Ответить с цитированием
  #4  
Старый 20.07.2006, 13:52
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Ну не знаю, я проверил твой код, все работает отлично.

Код:
function CopyDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
   ZeroMemory( @fos, SizeOf( fos ) );
   with fos do
   begin
      wFunc := FO_COPY;
      fFlags := FOF_FILESONLY;
      pFrom := PChar(fromDir + #0);
      pTo := PChar(toDir)
   end;
   Result := ( 0 = ShFileOperation( fos ) );
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  j: integer;
  List: TStringList;
begin
   List := TStringList.create;
   List.Add( 'D:\Program Files\Borland\Delphi6\Source\Clx' );
   List.Add( 'D:\Program Files\Borland\Delphi6\Source\Indy' );
   List.Add( 'D:\Program Files\Borland\Delphi6\Source\Rtl' );
   List.Add( 'D:\Program Files\Borland\Delphi6\Source\Vcl' );
   for j := 0 to List.Count-1 do
      if CopyDir( List.Strings[j], 'C:\' ) then
         ShowMessage( 'файлы скопированы' );
end;

Последний раз редактировалось Decoding, 23.07.2006 в 13:41.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter