ID článku: 320081 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

ÚVOD

V tomto článku je popísané, prečo nie je možné odstrániť súbor alebo priečinok v zväzku so systémom súborov NTFS, a ako riešiť jednotlivé príčiny a odstrániť tento problém.

DALSIE INFORMACIE

Poznámka Systém NTFS pracuje s priečinkami ako so zvláštnym typom súboru. Slovo súbor tak v tomto článku označuje súbor aj priečinok.

Príčina 1: Súbor používa zoznam ACL

Súbor nemusí byť možné odstrániť, ak používa zoznam prístupových práv ACL (Access Control List). Ak chcete odstrániť tento problém, zmeňte povolenia pre súbor. Pravdepodobne bude nutné prevziať vlastníctvo súborov, aby ste mohli zmeniť tieto povolenia.

Správcovia majú implicitnú možnosť prevziať vlastníctvo ľubovoľného súboru, a to aj v prípade, ak im nebolo explicitne udelené žiadne povolenie pre tento súbor. Vlastníci súborov majú implicitnú možnosť upravovať povolenia súboru aj v prípade, ak nemajú explicitne udelené žiadne povolenia pre súbor. Preto môže byť nutné prevziať vlastníctvo súboru, udeliť si povolenia na odstránenie súboru a potom tento súbor odstrániť.

Niektoré nástroje zabezpečenia nemôžete použiť na zobrazenie alebo úpravu povolení, pretože súbor má nekanonický zoznam ACL

Ak chcete odstrániť tento problém, použite iný nástroj (napríklad najnovšiu verziu programu Cacls.exe).

Položky prístupových práv (ACE) v zozname ACL majú určité preferované poradie, ktoré závisí od ich typu. Položky ACE, ktoré napríklad odmietajú prístup, majú prednosť pred položkami ACE, ktoré prístup udeľujú. Programu však nič nebráni v zapísaní zoznamu ACL, ktorý má položky ACE v ľubovoľnom poradí. V niektorých starších verziách systému Windows sa vyskytli problémy, keď sa systém Microsoft Windows pokúšal čítať tieto nekanonické zoznamy ACL. Zoznamy ACL niekedy nie je možné správne upraviť pomocou grafického editora zabezpečenia Microsoft Windows Prieskumník. V novších verziách systému Windows je tento problém odstránený. Ak sa stretávate s týmto problémom, použite najnovšiu verziu programu Cacls.exe. Ak aj nemôžete priamo zobraziť alebo upraviť zoznam ACL, môžete napísať nový zoznam ACL, ktorý vám umožní získať prístup k súboru.

Príčina 2: Súbor sa používa

Nie je možné odstrániť súbor, ktorý sa práve používa. Ak chcete odstrániť tento problém, určite proces s otvoreným popisovačom a potom tento proces zatvorte.

Od spôsobu otvorenia súboru (napríklad s výhradným prístupom namiesto zdieľaného prístupu) závisia aj možnosti odstránenia používaného súboru. Na určenie procesov, ktoré majú otvorené popisovače pre súbory, môžete kedykoľvek použiť množstvo rôznych nástrojov. Ďalšie informácie o pomocných nástrojoch pre procesy s otvorenými popisovačmi súborov získate po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
242131 Zobrazenie zoznamu procesov s otvorenými súbormi (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)
172710 Použitie nástroja OH v súprave Windows NT 4.0 Resource Kit (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)
Príznaky tohto problému môžu byť rôzne. Na odstránenie súboru môžete použiť príkaz Odstrániť, ale súbor sa v skutočnosti odstráni až po uvoľnení z procesu, ktorý tento súbor otvoril. Je možné, že okrem toho nebudete mať možnosť získať prístup k dialógovému oknu Zabezpečenie pre súbor, ktorý čaká na odstránenie. Tento problém odstránite tak, že určíte proces s otvoreným popisovačom a potom tento proces zatvoríte.

Príčina 3: Poškodenie systému súborov bráni prístupu k súboru

Ak je systém súborov poškodený, môže sa stať, že súbor nebudete mať možnosť odstrániť. Ak chcete odstrániť tento problém, spustite pomôcku Chkdsk vo zväzku diskov, aby sa opravili všetky chyby.

Chybné sektory na disku, iný chybný hardvér alebo softvérové chyby môžu poškodiť systém súborov a spôsobiť problematický stav súborov. Bežné činnosti môžu zlyhať rôznymi spôsobmi. Keď systém súborov zistí poškodenie, zapíše udalosť do denníka udalostí a vám sa zvyčajne zobrazí výzva na spustenie pomôcky Chkdsk. V závislosti od podstaty poškodenia pomôcka Chkdsk môže, ale nemusí byť schopná obnoviť údaje súboru. Pomôcka Chkdsk však vráti systém súborov do vnútorne konzistentného stavu. Ďalšie informácie o používaní pomôcky Chkdsk nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:
176646 Chybové hlásenie: Súbor alebo adresár je poškodený... (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)
187941 Vysvetlenie k pomôcke CHKDSK a novým prepínačom /C a /I (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)

Príčina 4: Súbor existuje na cestách na úrovni hlbšej ako MAX_PATH znakov

Je možné, že súbor nemôžete otvoriť, upraviť alebo odstrániť, pretože sa vyskytli problémy s cestou k súboru.

Riešenie 1: Použite na prístup k súboru automaticky generovaný názov vo formáte 8.3

Ak chcete odstrániť tento problém, použite na prístup k súboru automaticky vytvorený názov vo formáte 8.3. Toto riešenie môže byť najjednoduchšie v prípade, ak je cesta príliš dlhá v dôsledku príliš dlhých názvov priečinkov. Ak je aj cesta vo formáte 8.3 príliš dlhá, alebo ak názvy vo formáte 8.3 nie sú vo zväzku povolené, prejdite na Riešenie 2. Ďalšie informácie o vypnutí názvov súborov vo formáte 8.3 v zväzkoch NTFS nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:
121007 Ako vypnúť vytváranie názvov vo formáte 8.3 v oblastiach NTFS (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)

Riešenie 2: Premenovanie alebo premiestnenie hlboko umiestneného priečinka

Premenujte priečinok tak, aby cieľové súbory, ktoré sú umiestnené hlbšie ako MAX_PATH znakov viac neexistovali. Ak to chcete vykonať, začnite v koreňovom priečinku (alebo na inom vyhovujúcom mieste) a potom premenujte priečinky na priečinky s kratšími názvami. Ak sa problém neodstráni týmto krokom (ak sa súbor nachádza napríklad na úrovni hlbšej ako 128 priečinkov), prejdite na Riešenie 4.

Riešenie 3: Mapovanie jednotky k priečinku v štruktúre cesty

Mapujte jednotku k priečinku vo vnútri štruktúry cesty cieľového súboru alebo priečinka. Tento spôsob skracuje virtuálnu cestu.

Predpokladajme, že máte cestu s nasledovnou štruktúrou:
\\NázovServera\NázovPodpriečinka1\NázovPodpriečinka2\NázovPodpriečinka3\NázovPodpriečinka4\...
Celkový počet znakov v tejto ceste je vyšší ako 255. Ak chcete skrátiť dĺžku tejto cesty na 73 znakov, mapujte jednotku k úrovni NázovPodpriečinka4.

Riešenie 4: Použitie zdieľaného sieťového umiestnenia na úrovni priečinka

Ak riešenia 1 až 3 nevyhovujú alebo problém neriešia, vytvorte zdieľané sieťové umiestnenie na najhlbšej možnej úrovni stromu priečinkov a potom priečinky premenujte pomocou prístupu k zdieľanému umiestneniu.

Riešenie 5: Použitie nástroja, ktorý môžete prechádzať hlbokými cestami

Množstvo programov systému Windows očakáva, že maximálna dĺžka cesty bude kratšia ako 255 znakov. Preto si programy vyhradzujú iba vnútornú pamäť, ktorá postačuje na spracovanie týchto typických ciest. Systém NTFS nemá takéto obmedzenie a môže obsahovať dlhšie cesty.

S týmto problémom sa môžete stretnúť, ak v určitom bode štruktúry priečinkov vytvoríte zdieľanú položku, ktorá už je dosť hlboko, a potom pomocou tejto zdieľanej položky vytvoríte hlbokú štruktúru pod týmito bodmi. Niektoré nástroje, ktoré pracujú s lokálnym adresárovým stromom, nemusia byť schopné prechádzať cez celý strom od jeho koreňa. Tieto nástroje je potrebné použiť špeciálnym spôsobom, aby dokázali prejsť cez zdieľanú položku. (Metóda na prechádzanie celým stromom v takomto prípade je popísaná v dokumentácii CreateFile API.)

Súbory môžete zvyčajne spravovať pomocou softvéru, v ktorom boli vytvorené. Ak máte program, ktorý môže vytvárať súbory na hlbšej úrovni ako MAX_PATH, zvyčajne môžete tento program použiť aj na odstránenie alebo spravovanie týchto súborov. Súbory vytvorené v zdieľanom umiestnení môžete zvyčajne pomocou tej istej zdieľanej položky aj odstrániť.

Príčina 5: Názov súboru zahŕňa vyhradený názov v priestore názvov Win32

Ak názov súboru zahŕňa vyhradený názov (napríklad *lpt1) v priestore názvov Win32, súbor nemusí byť možné odstrániť. Ak chcete odstrániť tento problém, na premenovanie súboru použite iný program ako program Win32. Môžete použiť nástroj POSIX alebo ľubovoľný iný nástroj používajúci príslušnú internú syntax.

Okrem toho môžete použiť niektoré vstavané príkazy na obídenie kontroly typických vyhradených názvov Win32, ak použijete určitú syntax na určenie cesty k súboru. Ak použijete napríklad príkaz Del v systéme Windows XP, môžete odstrániť súbor s názvom lpt1, ak určíte celú cestu k súboru pomocou nasledovnej špeciálnej syntaxe:
del \\?\c:\cesta_k_súboru\lpt1
Ďalšie informácie o odstraňovaní súborov s vyhradenými názvami v systéme Windows NT a Windows 2000 získate po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
120716 Odstránenie súborov s vyhradenými názvami v systéme Windows (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)
Ďalšie informácie o odstraňovaní súborov s vyhradenými názvami v systéme Windows XP získate po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
315226 Odstránenie súborov s vyhradenými názvami v systéme Windows XP (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)
Ak otvoríte popisovač k súboru pomocou typického mechanizmu Win32 CreateFile, niektoré názvy súborov sú vyhradené pre staré zariadenia systému DOS. Na účely spätnej kompatibility tieto názvy súborov nie sú povolené a nemožno ich vytvoriť pomocou bežných volaní súborov Win32. Tento problém však neznamená obmedzenie pre systém NTFS.

Na obídenie kontroly typických názvov, ktorá sa vykonáva pri vytváraní (alebo odstraňovaní) súboru, môžete použiť program systému Win32 pomocou rovnakého postupu, ktorý sa používa na prechádzanie priečinkami v hĺbke väčšej ako MAX_PATH. Niektoré nástroje POSIX okrem toho nie sú predmetom kontroly názvov.

Príčina 6: Názov súboru zahŕňa neplatný názov v priestore názvov Win32

Súbor nemusí byť možné odstrániť, ak názov súboru zahŕňa neplatný názov (názov súboru obsahuje napríklad koncovú medzeru, koncovú bodku alebo je tvorený iba medzerou). Ak chcete odstrániť tento problém, na odstránenie súboru použite nástroj používajúci zodpovedajúcu internú syntax. Pri niektorých nástrojoch môžete na prácu s týmito súbormi použiť syntax \\?\, ako napríklad:
del „\\?\c:\cesta_k_súboru_obsahujúcemu koncovú medzeru.txt "
Príčina tohto problému je podobná príčine číslo 4. Ak však používate typickú syntax Win32 na otvorenie súboru s koncovými medzerami alebo koncovými bodkami v názve, koncové medzery alebo koncové bodky sa pred otvorením skutočného súboru odstránia. Ak teda máte v tom istom priečinku dva súbory s názvami "SúborA.txt" a "SúborA.txt " (všimnite si medzeru za názvom súboru) a pokúsite sa otvoriť druhý súbor pomocou bežného volania Win32, otvorí sa prvý súbor. Podobne, ak máte súbor s názvom iba " " (znak medzery) a pokúsite sa ho otvoriť pomocou štandardného volania Win32, otvoríte nadradený priečinok súboru. Ak sa v takomto prípade pokúsite zmeniť nastavenie zabezpečenia týchto súborov, nemusí to byť možné, alebo môžete neočakávane zmeniť nastavenie iných súborov. Ak sa vyskytne takéto správanie, môžete sa domnievať, že máte povolenie pre súbor, ktorý v skutočnosti používa obmedzujúci zoznam ACL.

Kombinácia príčin

Niekedy sa môžu vyskytnúť aj kombinácie uvedených príčin, čo spôsobí, že odstránenie súboru bude zložitejšie. Ak sa napríklad prihlásite ako správca počítača, môže sa vyskytnúť kombinácia príčiny číslo 1 (nemáte povolenie na odstránenie súboru) a príčiny číslo 5 (názov súboru obsahuje koncový znak, ktorý spôsobí presmerovanie prístupu k súboru na iný alebo neexistujúci súbor) a vy tak nebudete mať možnosť odstrániť súbor. Ak sa pokúsite odstrániť príčinu číslo 1 prevzatím vlastníctva súboru a pridaním povolení, môže sa stať, že aj tak nebudete mať možnosť odstrániť súbor, pretože editor ACL v používateľskom rozhraní nemôže získať prístup k príslušnému súboru v dôsledku príčiny číslo 6.

Ak je to tak, môžete použiť pomôcku Subinacl s prepínačom /onlyfile (táto pomôcka je súčasťou súpravy Resource Kit) na zmenu vlastníctva a povolení pre súbor, ktorý je inak neprístupný, napríklad takto:
subinacl /onlyfile „\\?\c:\cesta_k_problémovému_súboru" /setowner=doména\správca /grant=doména\správca=F
Poznámka Tento príkaz je jednoriadkový a zalomený je len kvôli lepšej názornosti.

Tento ukážkový príkazový riadok upravuje súbor C:\cesta_k_problémovému_súboru, ktorý obsahuje koncovú medzeru, takže konto doména\správca je vlastníkom súboru a toto konto má úplnú kontrolu nad súborom. Teraz môžete tento súbor odstrániť pomocou príkazu Del s rovnakou syntaxou \\?\ .

ODKAZY

Ďalšie informácie získate po kliknutí na nasledujúce číslo článku databázy Microsoft Knowledge Base:
319368 Pri odstraňovaní priečinkov z pripojenej jednotky sa zobrazí chybové hlásenie o odmietnutí prístupu (Toto prepojenie môže smerovať na obsah, ktorý je z časti alebo celý v angličtine)

Vlastnosti

ID článku: 320081 - Posledná kontrola: 3. decembra 2007 - Revízia: 7.3
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • 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 Edition
  • 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
Kľúčové slová: 
kbinfo kbfilesystems KB320081

Odošlite odozvu

 

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