· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Можно ли с помощью функции CopyFile перемещать файлы?

Посл.отвђт Сообщенiе


Дата: Авг 5, 2004 00:03:16 · Поправил: _Sysman_

Небольшой глюк, правильно название следует читать:
Можно ли с помощью функции CopyFile скопировать папку.

Попробовал скопировать папку с помощью CopyFile не получилось, перемещение же
с помощью MoveFile работает нормально.
В API Help в функции CopyFile ничего про папки не сказано, в отличие от MoveFile, где говорится:
"The MoveFile function renames an existing file or a directory..."
.DATA
papka db "C:\pap001", 0
papkacopy db "C:\pap002", 0

...

;invoke CopyFile, addr papka, addr papkacopy, TRUE	<<- не работает

invoke MoveFile, addr papka, addr papkacopy	;	<<- работает

...
Так как же скопировать папку?


Дата: Авг 5, 2004 00:34:42

Создай папку используя CreateAlways и копируй в нее все *.* вайлы.


Дата: Авг 5, 2004 00:39:42

Ещё была такая SHFileOperation


Дата: Авг 5, 2004 04:23:59 · Поправил: q_q

_Sysman_
При помощи CopyFile можно скопировать конкретный файл, то есть использование wildcard character недопустимо.

Пример использования SHFileOperation
include windows.inc
include kernel32.inc
include shell32.inc

includelib kernel32.lib
includelib shell32.lib
...
  CopyFiles proc pszFrom:ptr byte, pszTo:ptr byte
    local fo:SHFILEOPSTRUCT

    invoke RtlZeroMemory, addr fo, sizeof fo
    mov fo.wFunc, FO_COPY
    push pszFrom           ; path MUST exist
    pop  fo.pFrom
    push pszTo             ; path MUST exist
    pop  fo.pTo

    invoke SHFileOperation, addr fo
    .if eax || (fo.fAnyOperationsAborted != FALSE)
      xor eax,eax
    .else
      mov eax,1
    .endif

    ret
  CopyFiles endp
...
  szSrc db 'c:\winnt\temp\*',0
  szDst db 'c:\',0
...
  invoke CopyFiles, offset szSrc, offset szDst


Дата: Авг 16, 2004 18:23:51

В DOS имеется команда 'xcopy'


Дата: Авг 17, 2004 00:23:24

Операция переименования/перноса (MoveFile) в пределах одного тома сводиться к переносу/изменению ЗАПИСИ КАТАЛОГА. Содержимое файла/папки при этом не затрагивается. Копирование (CopyFile) дублирует содержимое файла.
_Sysman_
Ты пробовал свою папку переместить с помощью MoveFile на другой раздел/диск ?


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.109