функция movefileex

функция MoveFileEx движи съществуващ файл или директория.

Функция MoveFileWithProgress MoveFileEx еквивалентни функции. освен че MoveFileWithProgress дава възможност да се осигури функция за обратно повикване, които получава за изпълнението на уведомлението.

[В] показалец към символен низ с нулева в края, който се отнася към съществуващ файл или директория на локалния компютър.

Ако dwFlags определени MOVEFILE_DELAY_UNTIL_REBOOT. файлът не може да съществува, за отдалечено споделяне, тъй като отсрочени операции се извършват преди мрежата е на разположение.

Версията ANSI на тази функция, името на ограничения брой MAX_PATH флаг знаци. За да се отиде отвъд тази граница, с дължина до 32767 знака, обадете се на Unicode версията на функцията и Вмъкване на "\\? \". За повече информация, вижте. Член именуване на файлове.

[В] указател към нула символен низ в края, което определя ново име lpExistingFileName на локалната машина.

Ако преместите в директорията, местоназначението трябва да бъде един и същ диск.

Ако dwFlags набори параметри MOVEFILE_DELAY_UNTIL_REBOOT. lpNewFileName опция - нека (нула), функция MoveFileEx регистрира опцията файл lpExistingFileName да премахват, когато системата се рестартира. Ако параметър lpExistingFileName отнася до директорията, когато рестартирате системата премахва директория само ако директорията е празна.

[В] Този параметър може да бъде един или повече от следните стойности.

Тази стойност не може да се използва с MOVEFILE_DELAY_UNTIL_REBOOT знаме.

Резервиран за бъдеща употреба.

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

Тази стойност може да бъде използван само ако процесът е в контекста на потребителя, който принадлежи към групата администратор или сметката LocalSystem.

Windows NT: Тази стойност не се поддържа.

Тази стойност не може да се използва, ако lpNewFileName lpExistingFileName или име на директория.

Функцията не връща стойност, докато файлът не е действително прехвърлени към диска.

Тази стойност не е валидно, ако е настроено MOVEFILE_DELAY_UNTIL_REBOOT кутия.

Ако функцията е успешен, за връщане стойност - не нула.

Ако функцията се провали, връщане стойност - нула. За да получите разширена информация за грешка, обадете GetLastError.

Ако параметър dwFlags определя MOVEFILE_DELAY_UNTIL_REBOOT кутия. MoveFileEx не успее, ако не мога да вляза в системния регистър. функция MoveFileEx спестява място на файлове, които са преименувани когато рестартирате, следващата по-ниска стойност на регистрираните:

Функцията не успее, ако не можете да влезете в системния регистър.

Тази стойност е от тип регистър REG_MULTI_SZ. Всяка операция преименуване съхранява следващата двойка символни низове до нула в края.

Системата използва тези записи в регистъра, за да завършите операцията при повторно стартиране в същия ред, в който те са били създадени. Например, следния кодов фрагмент създава запис в системния регистър, които се премахне и да преименувате szDstFile szSrcFile. да бъде при рестартирането szDstFile.

Както действителния обем и отстраняване операцията, предварително определен флаг MOVEFILE_DELAY_UNTIL_REBOOT настъпва след обаждащия се е спрял извършва, върнатата стойност може да не отразява успеха или неуспеха на ход или да изтриете файла. Вместо това, тя отразява успеха или неуспеха при поставянето съответните записи в системния регистър.

Системата премахва директорията маркиран за изтриване MOVEFILE_DELAY_UNTIL_REBOOT флаг. само ако е празен. За да се гарантира отстраняването на директории, преместване или изтриване на всички файлове от директорията, преди да се опитате да го премахнете. Файловете могат да бъдат в каталога във фазата на натоварване, но те трябва да бъдат изтрити или преместени, преди системата да премахнете тази директория.

Операции на движение и отстраняване се извършват по време на зареждане в същия ред, в който те са определени в програмата за разговори. За да изтриете директория, която има файлове в този период в багажника, първо да изтриете тези файлове.

Ако даден файл е преместен от обема, толкова по-MoveFileEx не се премести дръжката на безопасност с файла. Файлът трябва да бъде зададен по подразбиране Характеристиката на сигурността в директорията домакин.

Windows 95/98 / Me: функция MoveFileEx не се поддържа. За да преименувате или изтриете файла когато рестартирате, използвайте следната процедура.

За да преименувате или изтриване на файлове в Windows 95/98 / Me
  1. Проверете wininit.ini съществуване на даден файл в директорията на Windows.
  2. Ако wininit.ini там, да го отворите и да добавите нови записи на съществуващия дял [преименувате]. Ако файлът не съществува, създаване на файла и да се създаде секция [преименувате].
  3. Добавете следния ред формата, в секция [преименувате]:

И създаване DestinationFileName и SourceFileName опция трябва да има кратки имена на файлове. За да изтриете файл, ползване NULL (празен) като стойност за DestinationFileName.

Системата обработва wininit.ini по време на зареждане на системата. След wininit.ini файл ще бъдат обработени, системата го нарича WININIT.BAK.

За да изтриете или преименувате даден файл, трябва да имате разрешително или да изтриете файла, или да разреши премахването на низходящи в директория. Ако зададете директорията с пълен достъп, освен да го изтриете и премахване на детето неговите елементи, както и за контрол на достъпа (ACL) списъци на нови файлове са наследени, тогава би трябвало да можете да създадете файл с никакъв начин да го премахнете. Въпреки това, след това можете да създадете файл и да получите всички на достъпа, които изискват от вас да се справя се завръща в себе си, когато създадете файл. Ако сте поискали разрешение да изтриете, когато създавате файл, можете да изтриете или преименувате файла с този от ЕВРОВОК, но не и с всеки друг.

Настаняване и съвместимост MoveFileEx