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