funcţia movefileex
Funcția MoveFileEx mută un fișier sau director existent.
MoveFileWithProgress de funcții MoveFileEx funcții echivalente. cu excepția faptului că MoveFileWithProgress face posibilă pentru a oferi o funcție de apel invers, care devine pe punerea în aplicare a notificării.
[În] pointer la un șir de caractere, cu un zero la sfârșitul anului, care se referă la un fișier existent sau director pe computerul local.
Dacă dwFlags set MOVEFILE_DELAY_UNTIL_REBOOT. fișierul nu poate exista pentru partajarea de la distanță, deoarece operațiunile amânate sunt efectuate înainte de rețea este disponibilă.
Versiunea ANSI a acestei funcții, numele numărului limitat de caractere MAX_PATH pavilion. Pentru a merge dincolo de această limită, la o lungime de 32767 de caractere, apel versiunea Unicode a funcției și a prefixului „\\? \“. Pentru mai multe informații, consultați. Articolul denumire fișiere.
[În] pointer la un șir de caractere nul la sfârșitul anului, care definește un nou lpExistingFileName numele pe mașina locală.
Dacă mutați directorul, destinația trebuie să fie același disc.
Dacă dwFlags seturi de parametri MOVEFILE_DELAY_UNTIL_REBOOT. Opțiunea lpNewFileName - lasa (NULL), funcția MoveFileEx înregistrează opțiunea lpExistingFileName fișier pentru a elimina atunci când sistemul repornește. Dacă parametrul lpExistingFileName se referă la un director, atunci când reporniți sistemul elimină directorul numai în cazul în care directorul este gol.
[In] Acest parametru poate fi una sau mai multe dintre următoarele valori.
Această valoare nu poate fi utilizat cu un MOVEFILE_DELAY_UNTIL_REBOOT steag.
Rezervat pentru o utilizare viitoare.
Sistemul nu se mișcă fișierul în sus până când sistemul de operare este repornit. Sistemul se mută fișierul imediat după AUTOCHK executată. dar înainte de a face orice fișier de swap. Prin urmare, această opțiune include o funcție de lucru care elimină fișierul de paginare de la scrutinele anterioare.
Această valoare poate fi utilizată numai în cazul în care procesul este în contextul utilizatorului care aparține grupului de administrator sau contul LocalSystem.
Windows NT: Această valoare nu este acceptată.
Această valoare nu poate fi utilizată în cazul în care lpNewFileName lpExistingFileName sau nume de director.
Funcția nu returnează o valoare, atâta timp cât fișierul nu este, de fapt transferat pe disc.
Această valoare nu este validă dacă caseta MOVEFILE_DELAY_UNTIL_REBOOT set.
Dacă funcția reușește, valoarea returnată - nu este zero.
Dacă funcția eșuează, valoarea returnată - zero. Pentru a obține informații despre eroare extinse, apel GetLastError.
Dacă parametrul dwFlags seturi caseta MOVEFILE_DELAY_UNTIL_REBOOT. MoveFileEx eșuează în cazul în care nu se poate avea acces la registru. Funcția MoveFileEx economisește spațiu de fișiere care sunt redenumite când reporniți, următoarea valoare mai mică a inregistrat:
Funcția eșuează dacă nu poate avea acces la registrul de sistem.
Această valoare de registru este de tip REG_MULTI_SZ. Fiecare operațiune redenumire stochează următoarea pereche de șiruri de caractere la zero la sfârșitul anului.
Sistemul utilizează aceste intrări de registry pentru a finaliza operațiunea la repornire în aceeași ordine în care au fost create. De exemplu, următorul fragment de cod creează o intrare de registry care elimina și redenumi szDstFile szSrcFile. să fie atunci când reporniți szDstFile.
Deoarece funcționarea reală de deplasare și de îndepărtare, un steag MOVEFILE_DELAY_UNTIL_REBOOT predeterminat are loc după ce apelantul a oprit efectuat, valoarea returnată nu poate reflecta succesul sau eșecul muta sau șterge fișierul. Mai degrabă, aceasta reflectă succesul sau eșecul în plasarea intrările relevante în registrul de sistem.
Sistemul elimină directorul marcat pentru ștergere de pavilion MOVEFILE_DELAY_UNTIL_REBOOT. numai dacă este gol. Pentru a asigura eliminarea directoare, muta sau șterge toate fișierele din directorul înainte de a încerca să-l eliminați. Fișierele pot fi în catalog în faza de încărcare, dar acestea trebuie să fie șterse sau mutate înainte ca sistemul poate elimina acel director.
Operațiuni de mișcare și de ștergere sunt efectuate la boot în aceeași ordine în care acestea sunt definite în programul de asteptare. Pentru a șterge un director care are fișiere în această perioadă, în portbagaj, ștergeți mai întâi aceste fișiere.
Dacă un fișier este mutat din volumul, cu atât MoveFileEx nu mișcați mânerul de siguranță cu fișierul. Fișierul trebuie să fie atribuit descriptorul implicit de securitate în directorul gazdă.
Windows 95/98 / Me: Funcția MoveFileEx nu este acceptată. Pentru a redenumi sau șterge fișierul atunci când reporniți, utilizați următoarea procedură.
Pentru a redenumi sau șterge fișierele din Windows 95/98 / Me- Verificați WININIT.INI existența unui fișier în directorul Windows.
- Dacă WININIT.INI acolo, se deschide și se adaugă noi intrări la partiția existentă [redenumi]. Dacă fișierul nu există, creați fișierul și de a crea o secțiune [redenumi].
- Adăugați următorul format linie în secțiunea [redenumi]:
Și setarea DestinationFileName și opțiunea sourcefilename trebuie să aibă nume de fișiere scurte. Pentru a șterge un fișier, Utilizați NULL (gol) ca valoare pentru DestinationFileName.
Sistemul procesează WININIT.INI în timpul pornirii sistemului. După ce fișierul WININIT.INI va fi procesat, sistemul numește WININIT.BAK.
Pentru a șterge sau redenumi un fișier, trebuie să aveți un permis sau pentru a șterge fișierul, sau permite eliminarea descendent în directorul părinte. Dacă setați directorul cu acces complet, cu excepția ștergeți-l și elimina elementele sale copil, și listele de control al accesului (ACL) de noi fișiere sunt moștenite, atunci ar trebui să fie capabil de a crea un fișier cu nici o modalitate de a-l elimina. Cu toate acestea, puteți crea un fișier și să obțină toate acces pe care aveți nevoie să se ocupe de returnat atunci când creați un fișier. Dacă ați solicitat permisiunea de a șterge, atunci când creați un fișier, puteți șterge sau redenumi fișierul cu acest descriptor, dar nu cu orice alta.
Cazarea și compatibilitatea MoveFileEx