Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

Копирование файлов   Найти похожие ветки 

 
Kaand   (2004-06-08 09:38) [0]

Подскажит, как копировать, чтобы не появлялось окно виндовы "Копирование."

function CopyFiles(const source, dest : string): boolean;
var
F : TShFileOpStruct;
begin
FormInstall.Memo1.Lines.Add("source: "+source+" - dest: "+dest);
F.Wnd   := 0;
F.wFunc := FO_COPY;
F.pFrom:=pchar(Source+#0);
F.pTo:=pchar(Dest+#0);
F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
result := (ShFileOperation(F) = 0);
end;

procedure FindFiles2(StartFolder, Mask: String;ScanSubFolders: Boolean = True);
var
SearchRec,F: TSearchRec;
FindResult: Integer;
DT : TFileTime;
ST : TSystemTime;
DirFrom, DirTo:String;
Vf: file;
begin

try
  StartFolder:=IncludeTrailingBackslash(StartFolder);
  FindResult:=FindFirst(StartFolder+"*.*", faAnyFile, SearchRec);
  try
    while FindResult = 0 do with SearchRec do
      begin
        if (Attr and faDirectory)<>0 then
          begin
            if ScanSubFolders and (Name<>".") and (Name<>"..") then
              begin
                FindFiles2(StartFolder+Name, Mask, ScanSubFolders);
              end
          end
         else
          begin
            if MatchesMask(Name, Mask) then
              begin
                DirFrom:=StartFolder;
                DirTo:="c:\Temp"+Copy(DirFrom,3,Length(DirFrom));
                ForceDirectories(DirTo);
                CopyFiles(DirFrom+Mask,DirTo);   //  CopyFile
                FindClose(F);
              end;  //IF
          end;
        FindResult:=FindNext(SearchRec);
      end;
  finally
    FindClose(SearchRec);
  end;
finally
end;
end;


 
Bar   (2004-06-08 10:48) [1]

function SHFileOperation(const lpFileOp: TSHFileOpStruct): Integer; stdcall;
Данная функция позволяет производить копирование, перемещение, переименование и удаление
(в том числе и в Recycle Bin) объектов файловой системы.
Функция возвращает 0, если операция выполнена успешно, и ненулевое значение в противном :-)
случае.

Функция имеет единственный аргумент - структуру типа TSHFileOpStruct, в которой и
передаются все необходимые данные.
Эта структура выглядит следующим образом:

_SHFILEOPSTRUCTA = packed record
   Wnd: HWND;
   wFunc: UINT;
   pFrom: PAnsiChar;
   pTo: PAnsiChar;
   fFlags: FILEOP_FLAGS;
   fAnyOperationsAborted: BOOL;
   hNameMappings: Pointer;
   lpszProgressTitle: PAnsiChar; { используется только при установленном флаге FOF_SIMPLEPROGRESS }
 end;

Поля этой структуры имеют следующее назначение:
hwnd Хэндл окна, на которое будут выводиться диалоговые окна о ходе операции.
wFunc Требуемая операция. Может принимать одно из значений:

FO_COPY Копирует файлы, указанные в pFrom в папку, указанную в pTo.
FO_DELETE Удаляет файлы, указанные pFrom (pTo игнорируется).
FO_MOVE Перемещает файлы, указанные в pFrom в папку, указанную в pTo.
FO_RENAME Переименовывает файлы, указанные в pFrom.
pFrom
Указатель на буфер, содержащий пути к одному или нескольким файлам. Если файлов несколько,
между путями ставится нулевой байт. Список должен заканчиваться двумя нулевыми байтами.

pTo
Аналогично pFrom, но содержит путь к директории - адресату, в которую производится копирование
или перемещение файлов. Также может содержать несколько путей. При этом нужно установить флаг
FOF_MULTIDESTFILES.

fFlags
Управляющие флаги.
FOF_ALLOWUNDO Если возможно, сохраняет информацию для возможности UnDo.
FOF_CONFIRMMOUSE Не реализовано.
FOF_FILESONLY Если в поле pFrom установлено *.*, то операция будет производиться только с файлами.
FOF_MULTIDESTFILES Указывает, что для каждого исходного файла в поле pFrom указана своя директория - адресат.
FOF_NOCONFIRMATION Отвечает "yes to all" на все запросы в ходе опеации.
FOF_NOCONFIRMMKDIR Не подтверждает создание нового каталога, если операция требует, чтобы он был создан.
FOF_RENAMEONCOLLISION В случае, если уже существует файл с данным именем,
создается файл с именем "Copy #N of..."
FOF_SILENT Не показывать диалог с индикатором прогресса.
FOF_SIMPLEPROGRESS Показывать диалог с индикатором прогресса, но не показывать имен файлов.
FOF_WANTMAPPINGHANDLE Вносит hNameMappings элемент.
Дескриптор должен быть освобожден функцией SHFreeNameMappings.
fAnyOperationsAborted
Принимает значение TRUE если пользователь прервал любую файловую операцию до ее завершения
и FALSE в ином случае.

hNameMappings
Дескриптор объекта отображения имени файла, который содержит массив структур SHNAMEMAPPING.
Каждая структура содержит старые и новые имена пути для каждого файла, который перемещался,
скопирован, или переименован. Этот элемент используется только, если установлен флаг FOF_WANTMAPPINGHANDLE.

lpszProgressTitle
Указатель на строку, используемую как заголовок для диалогового окна прогресса.
Этот элемент используется только, если установлен флаг FOF_SIMPLEPROGRESS.

Примечание.
Если pFrom или pTo не указаны, берутся файлы из текущей директории.
Текущую директорию можно установить с помощью функции SetCurrentDirectory и получить
функцией GetCurrentDirectory.


 
dreamteller ©   (2004-06-08 16:27) [2]

Не помню точно, но, вроде, copyfile(откуда,куда,0 или 1)



Страницы: 1 вся ветка

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
14-1088405274
Wonder
2004-06-28 10:47
2004.07.18
Внимание. Новый вирус.


14-1088320968
georg
2004-06-27 11:22
2004.07.18
Delphi 8


14-1088579087
oleg_krechetov
2004-06-30 11:04
2004.07.18
Сдача ВКР


3-1087584776
3APA3A
2004-06-18 22:52
2004.07.18
Заблокировать определенную запись


3-1088102643
Колбасьев
2004-06-24 22:44
2004.07.18
dbf-файл с ntx-индексом