Поделиться через


Функция MoveFile (winbase.h)

Перемещает существующий файл или каталог, включая его дочерние элементы.

Чтобы указать способ перемещения файла, используйте функцию MoveFileEx или MoveFileWithProgress .

Чтобы выполнить эту операцию как транзакцию, используйте функцию MoveFileTransacted .

Синтаксис

BOOL MoveFile(
  [in] LPCTSTR lpExistingFileName,
  [in] LPCTSTR lpNewFileName
);

Параметры

[in] lpExistingFileName

Текущее имя файла или каталога на локальном компьютере.

По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 символов в ширину, добавьте к пути "\\?\". Дополнительные сведения см. в статье Именование файлов, путей и пространств имен.

Совет

Начиная с Windows 10 версии 1607, вы можете согласиться на удаление ограничения MAX_PATH без добавления в начало "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" статьи Именование файлов, путей и пространств имен .

[in] lpNewFileName

Новое имя файла или каталога. Новое имя не должно существовать. Новый файл может находиться в другой файловой системе или на другом диске. Новый каталог должен находиться на том же диске.

По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 символов в ширину, добавьте к пути "\\?\". Дополнительные сведения см. в статье Именование файлов, путей и пространств имен.

Совет

Начиная с Windows 10 версии 1607, вы можете согласиться на удаление ограничения MAX_PATH без добавления в начало "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" статьи Именование файлов, путей и пространств имен .

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

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

Если файл перемещается по томам, MoveFile не перемещает дескриптор безопасности вместе с файлом. Файлу будет назначен дескриптор безопасности по умолчанию в целевом каталоге.

Функция MoveFile координирует свою работу со службой отслеживания ссылок, поэтому источники ссылок можно отслеживать по мере их перемещения.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) См. комментарий
SMB 3.0 с масштабируемыми общими папками (SO) См. комментарий
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

SMB 3.0 не поддерживает переименование альтернативных потоков данных в общих папках с возможностью непрерывной доступности.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CopyFile

Функции управления файлами

MoveFileEx

MoveFileTransacted

MoveFileWithProgress