Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование файлов ОС


Страницы:   1 2

SIV5000 ©   (2012-02-22 15:37:00) 

Народ привет. Подскажите пожалуйста. Еть несколько способов копирования файлов/папок с файлами. Вот допустим используя TSHFileOpStruct

procedure TForm1.Button1Click(Sender: TObject) ;
var
 Fos : TSHFileOpStruct;
 Buf : array[0..4096] of char;
 p : pchar;
 sDest : string;
begin
  FillChar(Buf, sizeof(Buf), #0) ;
  p := @buf;
  p := StrECopy(p, 'C:\FirstFile.ext1') + 1;
  p := StrECopy(p, 'C:\SecondFile.ext2') + 1;
  StrECopy(p, 'C:\ThirdFile.ext3') ;

  sDest := 'e:\';

  FillChar(Fos, sizeof(Fos), #0) ;
  with Fos do
  begin
    Wnd := Handle;
    wFunc := FO_COPY;
    pFrom := @Buf;
    pTo := sDest;
    fFlags := 0;
  end;
  if ((SHFileOperation(Fos) <> 0) or (Fos.fAnyOperationsAborted <> false)) then ShowMessage('Cancelled')
end;

можно копировать как один файл так и несколько и т.п.
Все работает нормально, НО. Если к примеру копирую большой файл  то если он еще не скопировался до конца и закрыть програму то копирование файла тоже прекращаеться. Как можно копировать/перемещать файлы/папки с файлами так чтоб этот процес не зависел от програмы которая его начала. Вот напримет если скопировать файлы в експлорере и "вставить" их то окно експлорера можно спокойно закрыить а копированеи будет продолжатся.


SIV5000   (2012-02-22 17:36:00) [21]


> выполнить его от имени другой программы/в другой программе

Может быть. Но как ето сделать? Может есть пример? Вообще когда в проводике скопировать файлы а потом вставить в какуюто папку, то копирование продолжаеться даже если закрыть окно проводника. Кае это там реализировано?
Как програмно вызвать "ВСТАВИТЬ" и указуть кудаб что б копированием занималась винда? Кто знает?


sniknik   (2012-02-22 17:14:00) [22]

выполнить его от имени другой программы/в другой программе, которую не закрывают. в проводнике например. если получится конечно.
или в чемто типа COM сервера, независимого от твоей программы.


SIV5000   (2012-02-22 16:30:00) [23]


> как только последнее окно закроешь - копирование остановится


Да. Ну а как сделать так что б при закрытии программы kопирование продолжалось???


Anatoly Podgoretsky   (2012-02-22 16:03:00) [24]

> AV  (22.02.2012 15:57:01)  [1]

Оно прекратится также если выключить компьютер.


AV   (2012-02-22 15:57:00) [25]

как только последнее окно закроешь - копирование остановится


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо