File.Move

File.Move ( string Source,
string Destination,
boolean Recurse = true,
boolean Overwrite = true,
boolean AbortOnFail = false,
boolean IncludeHiddenFiles = true,
function CallbackFunction = nil )
Примеры

Описание

Перемещает файл в другое место.

Параметры

Source

(строка) Путь к файлу, который нужно переместить. В этом поле можно использовать подстановочные знаки * и ? для перемещения нескольких файлов.

Destination

(строка) Путь к папке назначения или файлу, в которую нужно перемещение.

Предупреждение: Любые папки в пути назначения должны быть в наличии при выполнении этого действия или произойдет ошибка.

Совет: При необходимости можно создать папку назначения действием Folder.Create.

Recurse

(логический) Делать ли рекурсию вложенных папок при использовании подстановочных знаков в параметре Source:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueРекурсия. (По умолчанию)
falseНе делать рекурсию.

Overwrite

(логический) Переписывать ли любые файлы в папке назначения, если они имеют точно такие же имена как и перемещаемые файлы:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueПеремещение файлов из источника непосредственно поверх файлов, имеющихся в папке назначения. (По умолчанию)
falseНе перемещать файл, если другой файл с таким же именем уже существует в папке назначения.

AbortOnFail

(логический) Прервать ли операцию перемещения, если случилась ошибка:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueОстанавливаем перемещение как только произойдет первая ошибка.
falseПродолжать перемещение файлов, даже если некоторые файлы нельзя переместить. (По умолчанию)

IncludeHiddenFiles

(логический) Перемещать ли файлы с установленными атрибутами "скрытый" или "системный":

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueПеремещать файлы даже если они имеют установленные атрибуты "скрытый" или "системный".
falseНе перемещать любые файлы имеющие установленные атрибуты "скрытый" или "системный". (По умолчанию)

CallbackFunction

(функция) Имя функции, которая будет вызываться всякий раз когда происходит процесс перемещения. (Эту возвращающуюся функцию можно использовать для отображения хода выполнения операции перемещения, своим собственным способом.)

Примечание: Если в CallbackFunction установлено значение nil, тогда информация о протекании процесса будет отправлена во встроенное диалоговое окно состояния, предполагая что оно в настоящий момент видимое. (Можно показать или скрыть диалоговое окно состояния действиями StatusDlg.Show или StatusDlg.Hide соответственно.)

Возвращающаяся функция должна иметь возможность принять следующие параметры:

Source

(строка) Путь к источнику копируемых файлов (исходный путь).

Destination

(строка) Путь к папке назначения (путь назначения) для скопированного файла.

Copied

(число) Количество байтов, скопированных на настоящий момент.

Total

(число) Общее количество байтов, которое будет копироваться.

FileCopied

(число) Количество байтов текущего файла, скопированных на настоящий момент.

FileTotal

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

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueПродолжать операцию перемещения.
falseОстановить операцию перемещения, как только это станет возможным.

Возврат

Ничего. Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.
Смотрите также: Связанные действия

Примеры

Пример 1

File.Move("AutoPlay\\Docs\\*.txt", _TempFolder .. "\\Text Files", false);
Перемещаем все текстовые файлы из папки "AutoPlay\Docs" во вложенную папку по имени "Text Files" внутри пользовательской временной папки и не заходим в любые вложенные папки внутри "AutoPlay\Docs" для поиска файлов для перемещения.

Пример 2

File.Move(_SourceFolder .. "\\hidden.dat", _TempFolder .. "\\z3j2rlk\\sneaky.exe", false, true, false, true, CB_Move);
Перемещаем файл по имени "hidden.dat" из папки, где размещен файл autoplay.exe в папку, названную "z3j2rlk" в пользовательской временной папке, с переименованием файла в "sneaky.exe" в процессе перемещения. Опция рекурсии отключена и другие логические параметры установлены как значения по умолчанию. Функция по имени CB_Move будет вызываться всякий раз при выполнении операции перемещения (т.е. каждый раз при перемещении n-ного количества байтов).

Пример 3

-- Get the path to the user's My Documents folder.
-- Получаем путь к папке пользователя Мои документы.
myDocsFolder = Shell.GetFolder(SHF_MYDOCUMENTS);

-- Create a folder in the user's My Documents folder.
-- Создаем папку в пользовательской папке Мои документы.
Folder.Create(myDocsFolder .. "\\New");

-- Show the status dialog.
-- Показываем диалоговое окно состояния.
StatusDlg.Show();

-- Move all files from the "Old" folder to the "New" folder.
-- Перемещаем все файлы из папки quot;Old" в папку "New".
File.Move(myDocsFolder .. "\\Old\\*.*", myDocsFolder .. "\\New", true, true, false, false, nil);

-- Check to see if the files moved successfully by getting the error code.
-- Проверяем, успешно ли перемещены файлы, получением кода ошибки.
error = Application.GetLastError();

-- Hide the status dialog.
-- Скрываем диалоговое окно состояния.
StatusDlg.Hide();

-- If there was an error, display the error message.
-- If no error occurred, open the folder to view the moved files.
-- Если была ошибка, показываем сообщение об ошибке.
-- Если ошибки не было, открываем папку для просмотри перемещенных файлов.
if (error ~= 0) then
    Dialog.Message("Error", _tblErrorMessages[error], MB_OKCANCEL, MB_ICONEXCLAMATION);
else
    File.ExploreFolder(myDocsFolder .. "\\New");
end
В этом примере вначале создаем новую папку по имени "New" в папке пользователя Мои документы. Затем вызываем действие File.Move для перемещения всех файлов из существующей папки, называемой "Old", в папку по имени "New". Если файлы были перемещены неудачно, показываем сообщение об ошибке, а если действие прошло успешно, откурываем папку в окне Проводника.
Смотрите также: Связанные действия