Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "FileCopyDir", в содержании - "File, Directory and Disk Management" - "FileCopyDir", v1.0.46.09.

Ник переводчика: YMP.

Настоящее имя переводчика: Юрий Попов.

FileCopyDir

Копирует папку вместе со всеми её подпапками и файлами (наподобие xcopy).

FileCopyDir, Source, Dest [, Flag]

Параметры

Source Источник. Имя папки (без обратной косой черты на конце). Если не задан полный путь, ищется в папке, указанной в переменной A_WorkingDir. Пример: C:\My Folder
Dest Приёмник. Имя папки (без обратной косой черты на конце). Если не задан полный путь, создаётся в папке, указанной в переменной A_WorkingDir. Пример: C:\Copy of My Folder
Flag Флаг (необязателен). Этот флаг определяет, переписывать ли файлы, если они уже существуют.

0 (по умолчанию): не переписывать файлы. Операция закончится неудачей и не произведёт никакого эффекта, если указанное в Dest уже существует как файл или папка.

1: переписывать файлы. Однако никакие файлы или папки в Dest, которые не совпадают по имени с указанными в Source, удалены не будут.

Этот параметр может быть выражением, даже таким, которое расценивается как true (истина) или false (ложь) (поскольку эти значения хранятся в виде 1 и 0).

ErrorLevel

Равен 1, если были проблемы, иначе 0.

Примечания

Если структура папок приёмника не существует, она будет создана, если это возможно.

Поскольку операция рекурсивно копирует папку вместе со всеми её подпапками и файлами, результат копирования папки куда-нибудь внутрь самой этой папки непредсказуем. Чтобы обойти это, сначала скопируйте куда-нибудь вне папки, а затем используйте FileMoveDir, чтобы переместить скопированное по назначению.

FileCopyDir копирует одиночную папку как целое. Если нужно скопировать только содержимое папки (все её файлы и подпапки), смотрите пример в описании FileCopy.

Примеры

FileCopyDir, C:\My Folder, C:\Copy of My Folder

; Пример №2: Скрипт, предлагающий вам скопировать папку.
FileSelectFolder, SourceFolder, , 3, Выберите папку для копирования.
if SourceFolder =
    return
; Иначе продолжим.
FileSelectFolder, TargetFolder, , 3, Выберите папку, В КОТОРУЮ нужно поместить копию.
if TargetFolder =
    return
; Иначе продолжим.
MsgBox, 4, , Копия папки "%SourceFolder%" будет помещена в "%TargetFolder%". Продолжить?
IfMsgBox, No
    return
SplitPath, SourceFolder, SourceFolderName ; Извлечь из полного пути только имя папки.
FileCopyDir, %SourceFolder%, %TargetFolder%\%SourceFolderName%
if ErrorLevel
    MsgBox Папка не может быть скопирована. Возможно, папка с таким именем уже существует в "%TargetFolder%".
return

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.