![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Имеется функция копирования директории.
Необходимо скопировать несколько директорий в теле цикла. for j:=0 to List.Count-1 do CopyDir(List.Strings[j], 'C:\') При таком варианте копируется только 1-ая директория, на остальных выпадает ошибка. Что делать? |
#2
|
||||
|
||||
![]() Покажи код полностью...
|
#3
|
||||
|
||||
![]() //функция копирования директорий
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
|
||||
|
||||
![]() Ну не знаю, я проверил твой код, все работает отлично.
Код:
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. |