Nu este posibilă ștergerea unui fișier sau folder pe un volum cu sistemul de fișiere NTFS

Traduceri articole Traduceri articole
ID articol: 320081 - View products that this article applies to.
Măriți totul | Reduceți totul

În această pagină

INTRODUCERE

Acest articol descrie de ce este posibil să nu se poată șterge un fișier sau un folder pe un volum cu sistemul de fișiere NTFS și cum se abordează diferitele cauze pentru a rezolva această problemă.

INFORMAȚII SUPLIMENTARE

Notă Intern, NTFS tratează folderele ca un tip special de fișier. De aceea, cuvântul „fișier” din acest articol se referă și la fișiere și la foldere.

Cauza 1: Fișierul utilizează un ACL

Este posibil să nu se poată șterge un fișier dacă fișierul utilizează o listă de control al accesului (ACL). Pentru a rezolva această problemă, modificați permisiunile din fișier. Pentru a modifica permisiunile, poate fi necesar să preluați fișierele în proprietate.

Administratorii au capacitatea implicită de a prelua în proprietate orice fișier, chiar dacă nu li s-a acordat în mod expres permisiunea pentru acel fișier. Proprietarii de fișiere au capacitatea implicită de a modifica permisiunile de fișiere, chiar dacă nu li s-a acordat permisiunea în mod expres pentru acel fișier. De aceea, poate fi necesar să preluați în proprietate un fișier, să vă acordați permisiuni pentru ștergerea sa, apoi să-l ștergeți.

Nu aveți posibilitatea să utilizați anumite instrumente de securitate pentru a afișa sau a modifica permisiuni, deoarece fișierul are un ACL non-canonic

Pentru a rezolva această problemă, utilizați alt instrument (de exemplu, o compilare mai nouă a Cacls.exe).

ACE-urile (intrările de control al accesului) dintr-un ACL au o anumită ordine preferată, în funcție de tipul lor. De exemplu, ACE-urile care refuză accesul se află de obicei înaintea ACE-urilor care acordă accesul. Însă, nu există nicio restricție ca un program să scrie un ACL care are ACE-uri dispuse într-o ordine arbitrară. În anumite versiuni anterioare de Windows, se produceau probleme atunci când Microsoft Windows încerca să citească aceste ACL-uri „non-canonice”. Uneori, nu aveți posibilitatea să modificați corect aceste ACL-uri utilizând editorul grafic de securitate Microsoft Windows Explorer. Problema a fost corectată în versiunile ulterioare de Windows. Dacă vă confruntați cu această problemă, utilizați cea mai recentă versiune de Cacls.exe. Chiar dacă nu aveți posibilitatea să afișați sau să editați un ACL pe loc, aveți posibilitatea să scrieți un ACL nou, care vă permite să obțineți acces la fișier.

Cauza 2: Fișierul este în uz

Este posibil ca un fișier în uz să nu poată fi șters. Pentru a rezolva această problemă, determinați care proces are un handle deschis, apoi închideți procesul respectiv.

În funcție de modul în care este deschis fișierul (de exemplu, este deschis pentru acces exclusiv în loc de acces partajat), este posibil ca fișierul în uz să nu poată fi șters. Oricând doriți, aveți posibilitatea să utilizați o varietate de instrumente pentru a vă ajuta să determinați care procese au handle-uri deschise cu fișiere. Pentru informații suplimentare privind instrumentele pentru găsirea proceselor care au deschise handle-uri către fișiere, faceți clic pe următoarele numere de articole pentru a vedea articolele în Baza de cunoștințe Microsoft:
242131 Cum se afișează o listă de procese care au fișiere deschise (articolul poate să fie în limba engleză)
172710 Cum se utilizează instrumentul OH în Windows NT 4.0 Resource Kit (articolul poate să fie în limba engleză)
Simptomele acestei probleme pot varia. Deși este posibil să se utilizeze comanda Ștergere pentru a șterge un fișier, fișierul nu se va șterge efectiv până când procesul care are fișierul deschis nu eliberează fișierul. În plus, poate fi imposibil să se acceseze caseta de dialog Securitate pentru un fișier care este în așteptare pentru ștergere. Pentru a rezolva această problemă, determinați care proces are deschis un handle, apoi închideți acel proces.

Cauza 3: Deteriorarea sistemului de fișiere împiedică accesul la fișier

Ștergerea fișierului poate fi imposibilă în cazul în care sistemul de fișiere este deteriorat. Pentru a rezolva această problemă, executați utilitarul Chkdsk pe volumul de disc și corectați orice erori.

Sectoarele deteriorate de pe disc, alte componente hardware cu erori sau erorile de software pot deteriora sistemul de fișiere și pot pune fișierele într-o stare problematică. Operațiunile obișnuite pot să nu reușească în mai multe moduri. Când sistemul de fișiere detectează elemente deteriorate, înregistrează un eveniment în jurnalul de evenimente, iar dvs. primiți de obicei un mesaj care vă solicită să executați Chkdsk. În funcție de natura deteriorării, este posibil ca Chkdsk să nu poată recupera datele de fișier; însă, Chkdsk restabilește sistemul de fișiere la o stare de consistență internă. Pentru informații suplimentare despre utilizarea utilitarului Chkdsk, faceți clic pe următoarele numere de articole pentru a vedea articolele în Baza de cunoștințe Microsoft:
176646 Mesaj de eroare: The file or directory is corrupt... (articolul poate să fie în limba engleză)
187941 O descriere a CHKDSK și a argumentelor noi /C și /I (articolul poate să fie în limba engleză)

Cauza 4: Fișierele se află în căi ce depășesc numărul maxim de caractere MAX_PATH

Poate fi imposibil să se deschidă, editeze sau să se șteargă un fișier dacă există probleme cu calea de fișier.

Rezolvarea 1: Utilizați un nume auto-generat 8.3 pentru a accesa fișierul

Pentru a rezolva această problemă, utilizați numele auto-generat 8.3 pentru a accesa fișierul. Această rezolvare poate fi cea mai simplă, în cazul în care calea este adâncă din cauza numelor de foldere prea lungi. În cazul în care calea 8.3 este și ea prea lungă sau dacă numele 8.3 au fost dezactivate pe volum, treceți la Rezolvarea 2. Pentru informații suplimentare despre dezactivarea numelor de fișiere 8.3 pe volumele NTFS, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
121007 Cum se dezactivează crearea de nume 8.3 pe partițiile NTFS (articolul poate să fie în limba engleză)

Rezolvarea 2: Redenumiți sau mutați un folder aflat în adâncime

Redenumiți folderul pentru ca fișierele țintă care sunt dincolo de limita MAX_PATH să nu mai existe. Dacă faceți aceasta, porniți de la folderul rădăcină (sau orice alt loc convenabil), apoi redenumiți folderele pentru a avea nume mai scurte. Dacă acest pas nu rezolvă problema (de exemplu, dacă un fișier este mai departe de 128 de foldere), treceți la Rezolvarea 4

Rezolvarea 3: Mapați o unitate la un folder din structura căii

Mapați o unitate la un folder din structura căii fișierului sau folderului țintă. Această metodă scurtează calea virtuală.

De exemplu, să presupunem că aveți o cale care este structurată după cum urmează:
\\NumeServer\NumeSubfolder1\NumeSubfolder2\NumeSubfolder3\NumeSubfolder4\...
În această cale, numărul total de caractere este mai mare decât 255. Pentru a scurta lungimea căii la 73 de caractere, mapați o unitate la NumeSubfolder4.

Rezolvarea 4: Utilizați o partajare de rețea care are aceeași adâncime ca folderul

Dacă rezolvările 1, 2 și 3 nu sunt convenabile sau nu rezolvă problema, creați o partajare de rețea cu adâncime cât mai mare în arborele folderului, apoi redenumiți folderele accesând partajarea.

Rezolvarea 5: Utilizați un instrument care poate parcurge căile adânci

Multe programe Windows se așteaptă ca lungimea maximă de cale să fie mai mică de 255 de caractere. De aceea, aceste programe nu alocă mai mult spațiu intern de stocare decât cel necesar pentru gestionarea acestor căi obișnuite. NTFS nu are această limită și poate reține căi mult mai lungi.

Această problemă poate apărea în cazul în care creați la un moment dat o partajare în structura deja destul de adâncă a folderului, apoi creați o structură adâncă sub acele puncte, utilizând partajarea. Este posibil ca anumite instrumente care operează local cu arborele folderului să nu poată parcurge întreg arborele începând de la rădăcină. Poate fi necesară utilizarea acestor instrumente într-un mod special, astfel încât să fie posibilă parcurgerea partajării. (Documentația API CreateFile descrie o metodă de parcurgere completă a arborelui în această situație.)

De obicei, aveți posibilitatea să gestionați fișiere utilizând software-ul care le creează. Dacă aveți un program care poate crea fișiere mai adânci decât MAX_PATH, aveți de obicei posibilitatea să utilizați același program pentru a șterge sau gestiona fișierele. Fișiere care sunt create pe o partajare se pot șterge, de obicei, utilizând aceeași partajare.

Cauza 5: Numele fișierului include un nume rezervat în spațiul de nume Win32

Dacă numele de fișier include un nume rezervat în spațiul de nume Win32 (de exemplu, „lpt1”), este posibil să nu se poată șterge fișierul. Pentru a rezolva această problemă, utilizați un program non-Win32 pentru a redenumi fișierul. Aveți posibilitatea să utilizați un instrument POSIX sau orice alt instrument care utilizează sintaxa internă potrivită pentru a utiliza fișierul.

În plus, există posibilitatea să utilizați anumite comenzi încorporate pentru a ocoli verificările de nume tipice rezervate Win32, dacă utilizați o sintaxă specifică pentru a preciza calea fișierului. De exemplu, dacă utilizați comanda Del în Windows XP, aveți posibilitatea să ștergeți un fișier denumit „lpt1” dacă specificați calea completă a fișierului utilizând următoarea sintaxă specială:
del \\?\c:\calea_fișierului\lpt1
Pentru informații suplimentare despre ștergerea fișierelor cu nume rezervate sub Windows NT și Windows 2000, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
120716 Cum se elimină fișierele cu nume rezervate în Windows (articolul poate să fie în limba engleză)
Pentru informații suplimentare despre ștergerea fișierelor cu nume rezervate sub Windows XP, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
315226 Cum se elimină fișierele cu nume rezervate în Windows XP (articolul poate să fie în limba engleză)
Dacă deschideți un handle către un fișier utilizând mecanismul tipic CreateFile Win32, anumite nume de fișiere sunt rezervate pentru dispozitivele DOS de tip vechi. Pentru compatibilitate inversă, aceste nume de fișiere nu sunt permise și nu se pot crea utilizând apelări de fișier tipice Wind32. Însă, această problemă nu este o limitare pentru NTFS.

Un program Win32 poate fi utilizat pentru a ocoli anumite verificări de nume tipice care se efectuează când se creează (sau se șterge) un fișier, folosind aceeași tehnică care se utilizează pentru a parcurge foldere care sunt mai adânci decât MAX_PATH. În plus, anumite instrumente POSIX nu sunt subiectul acestor verificări de nume.

Cauza 6: Numele de fișier include un nume nevalid din spațiul de nume Win32

Ștergerea unui fișier poate fi imposibilă dacă numele de fișier include un nume nevalid (de exemplu, numele de fișier are la final un spațiu sau un punct sau numele fișierului este format dintr-un singur spațiu). Pentru a rezolva această problemă, utilizați un instrument care utilizează sintaxa internă potrivită pentru a șterge fișierul. Aveți posibilitatea să utilizați sintaxa „\\?\” cu anumite instrumente pentru a efectua operațiuni asupra acestor fișiere, de exemplu:
del „\\?\c:\cale_către_fișierul care conține un spațiu la final.txt ”
Cauza acestei probleme este similară cu cauza 4. Însă, dacă utilizați sintaxă tipică Win32 pentru a deschide un fișier care are spații sau puncte la finalul numelui său, acestea sunt eliminate înainte să se deschidă fișierul în sine. De aceea, dacă aveți două fișiere în același folder denumite „UnFișier.txt” și „UnFișier.txt ” (observați spațiul aflat după numele fișierului), dacă încercați să deschideți al doilea fișier utilizând apelări standard Win32, veți deschide în schimb primul fișier. În mod similar, dacă aveți un fișier al cărui nume este doar „ ” (un caracter spațiu) și încercați să-l deschideți utilizând apelări Win32 standard, se va deschide în schimb folderul părinte al fișierului. În această situație, dacă încercați să modificați setările de securitate pentru aceste fișiere, atunci este posibil să nu reușiți să efectuați aceasta sau să modificați în mod neașteptat setările pentru fișiere diferite. Dacă se produce acest comportament, este posibil să credeți că dețineți permisiuni pentru un fișier care are de fapt un ACL restrictiv.

Combinații de cauze

Uneori, este posibil să se manifeste combinații ale acestor cauze, care pot face mai complexă procedura de ștergere a unui fișier. De exemplu, dacă faceți Log on ca administrator al computerului, este posibil să experimentați o combinație între Cauza 1 (nu aveți permisiunea de a șterge un fișier) și Cauza 5 (numele fișierului conține un caracter la final care determină ca accesările fișierului să fie redirecționate către un fișier diferit sau care nu există), și astfel să nu aveți posibilitatea să ștergeți fișierul. Dacă încercați să rezolvați Cauza 1 preluând în proprietate fișierul și adăugând permisiuni, ștergerea fișierului poate fi în continuare imposibilă, deoarece editorul ACL din interfața cu utilizatorul nu poate să acceseze fișierul potrivit ca urmare a Cauzei 6.

În această situație, aveți posibilitatea să utilizați utilitarul Subinacl cu argumentul /onlyfile (acest utilitar este inclus în Resource Kit) pentru a modifica proprietarul și permisiunile pentru un fișier care este altfel inaccesibil, cum ar fi:
subinacl /onlyfile "\\?\c:\cale_către_fișierul problemă" /setowner=domeniu\administrator /grant=domeniu\administrator=F
Notă Această comandă este o singură linie și a fost pusă pe mai multe linii pentru a fi citită mai ușor.

Această mostră de linie de comandă modifică fișierul C:\cale_către_fișierul problemă care conține un spațiu la final astfel încât contul domeniu\administrator să fie proprietarul fișierului și să aibă control complet asupra fișierului. Acum, aveți posibilitatea să ștergeți acest fișier utilizând comanda Del cu aceeași sintax㠄\\?\”.

REFERINȚE

Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
319368 Primiți un mesaj de eroare „Access Denied” când ștergeți foldere de pe o unitate montată (articolul poate să fie în limba engleză)

Proprietă?i

ID articol: 320081 - Ultima examinare: 3 decembrie 2007 - Revizie: 7.3
SE APLICĂ LA
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows Advanced Server, Limited Edition
  • Microsoft Windows Datacenter Server Limited Edition
Cuvinte cheie: 
kbinfo kbfilesystems KB320081

Trimite?i feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com