:   24.04.2024 .
:
 
 
* *
01796

Ó âàñ åñòü íîóòáóê?
- Windows: Ëå÷èì ãëþ÷íûå ôàéëû NTFS -
Windows: Ëå÷èì ãëþ÷íûå ôàéëû NTFS
 
 ýïîõó îïåðàöèîííîé ñèñòåìû MS-DOS è ôàéëîâîé ñèñòåìû FAT16 ñóùåñòâîâàëè æ¸ñòêèå îãðàíè÷åíèÿ ñîñòàâëåíèÿ èì¸í ôàéëîâ. Òàê, ìàêñèìàëüíàÿ äëèíà èì¸í ôàéëà íå äîëæíà áûëà ïðåâûøàòü 8 ñèìâîëîâ, à ðàñøèðåíèÿ – 3 ñèìâîëîâ.
Ñ âûõîäîì Windows 95 ìàêñèìàëüíàÿ äëèíà èìåíè ôàéëà óâåëè÷èëàñü äî 255 ñèìâîëîâ, è ñ òåõ ïîð íàì íå ïðèõîäèòñÿ ãàäàòü, ÷òî ñêðûâàåòñÿ â ôàéëå ñ íàçâàíèåì MARIOB~1.RAR.  íîâûõ ôàéëîâûõ ñèñòåìàõ FAT32 è NTFS ñ òåõ âðåì¸í îñòàëèñü äðóãèå, ìåíåå çàìåòíûå, íî âñ¸ æå îãðàíè÷åíèÿ.
 
Çàïðåòíûå ñèìâîëû
 
Òàê íàçûâàåìûå Filename Conventions («Ñîãëàøåíèÿ îá èìåíàõ ôàéëîâ») ñîäåðæàò ïðàâèëà, îïðåäåëÿþùèå èìåíà ôàéëîâ. Äàííûé äîêóìåíò óêàçûâàåò, êàêèå ñèìâîëû äîïóñòèìî èñïîëüçîâàòü â íàçâàíèÿõ ôàéëîâ, êàêèå ñèìâîëû ÿâëÿþòñÿ ðàçäåëèòåëÿìè ïóòè, îïðåäåëåíà ìàêñèìàëüíàÿ äëèíà ïóòè è ò.ä.
Çäåñü æå îãîâàðèâàþòñÿ îãðàíè÷åíèÿ. Íàïðèìåð, ñèìâîëû “”, “/”, “?”, “|”, “*”,“<”, “>” è “:” èìåþò ñïåöèàëüíîå çíà÷åíèå â Windows ïðè îïåðàöèÿõ ñ ôàéëàìè, â ÷àñòíîñòè, èç êîìàíäíîé ñòðîêè, è ïîýòîìó íå ìîãóò áûòü èñïîëüçîâàíû â èìåíè îòäåëüíîãî ôàéëà.
Ïî-âèäèìîìó, ýòî îãðàíè÷åíèå îáîéòè íåâîçìîæíî, ïîñêîëüêó ïðè îáðàùåíèè ê ñèñòåìíûì ôóíêöèÿì äëÿ ðàáîòû ñ ôàéëàìè, Windows çàìå÷àåò èõ ñðåäè äðóãèõ ñèìâîëîâ è èíòåðïðåòèðóåò ïî-ñâîåìó.
Ñëåäóåò îáðàòèòü âíèìàíèå íà ñïåöèôè÷åñêîå èñïîëüçîâàíèå ñèìâîëîâ òî÷êè “.”, äâîåòî÷èÿ “:” è ïðîáåëà. Ñèìâîë ïðîáåëà ìîæåò âñòðå÷àòüñÿ â èìåíè ôàéëà èëè êàòàëîãà. Òî÷êà èñïîëüçóåòñÿ êàê ðàçäåëèòåëü èìåíè ôàéëà îò ðàñøèðåíèÿ. Äâîåòî÷èå – ýòî ðàçäåëèòåëü ìåæäó áóêâîé äèñêà è îñòàëüíîé ÷àñòüþ ïóòè. Èñïîëüçîâàíèå äâîåòî÷èÿ íå äîïóñêàåòñÿ íèãäå, êðîìå êàê ïîñëå áóêâû äèñêà.
Èñêëþ÷åíèåì ÿâëÿåòñÿ ôàéëîâàÿ ñèñòåìà NTFS, ãäå äâîåòî÷èå èñïîëüçóåòñÿ åù¸ è â êà÷åñòâå ðàçäåëèòåëÿ ìåæäó íîðìàëüíûì èìåíåì ôàéëà è ïðèêðåïë¸ííûìè ê íåìó ôàéëîâûìè ïîòîêàìè. Òî÷êà è ïðîáåë ìîãóò ñòîÿòü â ëþáîì ìåñòå èìåíè, íî íå ìîãóò áûòü çàâåðøàþùèìè ñèìâîëàìè.
Òàêîå ñòðàííîå, íà ïåðâûé âçãëÿä, îãðàíè÷åíèå ñóùåñòâóåò, êàê îáúÿñíÿåò Microsoft, ðàäè ñîâìåñòèìîñòè íîâûõ ôàéëîâûõ ñèñòåì ñî ñòàðûìè, òàêèìè êàê HPFS, èñïîëüçóåìîé â OS/2 è FAT16. ß ñ÷èòàþ, ÷òî ýòî îãðàíè÷åíèå ÷àñòè÷íî ñâÿçàíî ñ äâóìÿ ñóùåñòâóþùèìè âèðòóàëüíûìè ôàéëîâûìè îáúåêòàìè (òàê íàçûâàåìûå «òî÷êè»).
Ïðè ðàáîòå ñ ôàéëîâûìè ìåíåäæåðàìè âðîäå Total Commander, äëÿ ïåðåõîäà â ïðåäûäóùóþ ïàïêó íàäî ù¸ëêíóòü ïî êàòàëîãó ñ íàçâàíèåì “..” (äâå òî÷êè).  ôàéëîâûõ ñèñòåìàõ òàê îáîçíà÷àåòñÿ ðîäèòåëüñêèé êàòàëîã îòíîñèòåëüíî òåêóùåãî ïóòè, à òåêóùàÿ ïàïêà îáîçíà÷àåòñÿ êàê “.” (îäíà òî÷êà).
×åñòíî ãîâîðÿ, ýòè îáúåêòû íå ÿâëÿþòñÿ íàñòîÿùèìè ôàéëàìè èëè êàòàëîãàìè. Ýòî ïðîñòî àáñòðàêòíûå îáúåêòû, èñïîëüçóåìûå ïî òðàäèöèè äëÿ íàâèãàöèè ìåæäó ïàïêàìè.
 Windows Explorer (Ïðîâîäíèê) îíè âîîáùå íå ïîêàçûâàþòñÿ. Ïîñêîëüêó ïîëüçîâàòåëü ìîæåò ñîçäàâàòü ôàéëû, èìåíà êîòîðûõ íà÷èíàþòñÿ ñ òî÷êè (íî íå â Windows Explorer), òî Microsoft çàáëîêèðîâàëà âîçìîæíîñòü ñòàâèòü òî÷êè â êîíöå íàçâàíèÿ, ÷òîáû áûëî íåâîçìîæíî ñîçäàòü ôàéë “..”. Àíàëîãè÷íî çàáëîêèðîâàí â êîíöå èìåíè è ïðîáåë.
 
Îáõîäèì îãðàíè÷åíèÿ
 
Íà ñåãîäíÿ èçâåñòíû äâà íàèáîëåå óäîáíûõ ñïîñîáà îáõîäà îïèñàííûõ îãðàíè÷åíèé. Ïðèíöèï èõ äåéñòâèÿ ñâîäèòñÿ ê ñîñòàâëåíèþ íàçâàíèÿ ôàéëà îïðåäåë¸ííûì îáðàçîì, ïîñëå ÷åãî îíî ïåðåäà¸òñÿ íåêîòîðîé ñèñòåìíîé ôóíêöèè äëÿ ðàáîòû ñ ôàéëàìè.
 ðåçóëüòàòå ýòîãî àëãîðèòì ïðîâåðêè ïàðàìåòðà íà êîððåêòíîñòü íå ñðàáàòûâàåò, è ìû ïîëó÷àåì íóæíûé ðåçóëüòàò – ñîçäà¸òñÿ ôàéë èëè êàòàëîã (ïàïêà) ñ êîðÿâûì íàçâàíèåì äëÿ ñèñòåìû èëè íàîáîðîò, ïîëó÷àåì âîçìîæíîñòü ïîëó÷èòü äîñòóï ê óæå ñóùåñòâóþùåìó ôàéëó ñ êîðÿâûì íàçâàíèåì.
 
Ñïîñîá ïåðâûé
 
Çàêëþ÷àåòñÿ â èñïîëüçîâàíèè UNC-ïóòåé (Universal Naming Convention – Óíèâåðñàëüíîå ñîãëàøåíèå îá èìåíàõ). Ýòî ôîðìàò äëÿ çàïèñè ïóòè ê ôàéëó, ðàñïîëîæåííîìó íà óäàë¸ííîì êîìïüþòåðå.
Îí èìååò ôîðìàò: “serversharepath”, ãäå server – ýòî èìÿ ñåðâåðà, share – ðàñøàðåííûé ðåñóðñ íà í¸ì, à äàëåå ñëåäóåò ïóòü ê ôàéëó â îáû÷íîì ôîðìàòå. Äàííûé ñïîñîá äîñòóïà ê ôàéëàì ìîæíî ïðèìåíÿòü è äëÿ ëîêàëüíîé ìàøèíû, òîëüêî â ýòîì ñëó÷àå âìåñòî “server” ñëåäóåò ïîäñòàâèòü “?” (çíàê âîïðîñà) èëè “.” (òî÷êà), à ïóòü ê ôàéëó óêàçàòü âìåñòå ñ áóêâîé äèñêà. Íàïðèìåð, òàê: “?C:Downloadsfile.txt”.
 
 
 
 
Ýòî, ïîæàëóé, ñàìûé ïðîñòîé è óäîáíûé ñïîñîá. Ðàçáåð¸ì åãî íà ïðèìåðå óäàëåíèÿ ôàéëà ñ íåêîððåêòíûì íàçâàíèåì “CABM909J.”, êîòîðûé îáðàçîâàëñÿ ó ìåíÿ â ìîìåíò ñêà÷èâàíèÿ ïðèêðåïë¸ííîãî ê ïèñüìó DOC-ôàéëà ñ èìåíåì íà óêðàèíñêîì ÿçûêå, è êîòîðûé ñèñòåìà íå ïðàâèëüíî ïîíÿëà.
Ñ òåõ ñàìûõ ïîð íèêàêèìè ñðåäñòâàìè óäàëèòü ýòîò ôàéë íåëüçÿ. Íè Ïðîâîäíèê, íè Total Commander, íè êîìàíäíàÿ ñòðîêà ñïðàâèòüñÿ ñ íèì íå â ñîñòîÿíèè. Ïðè ýòîì ôàéë ÿêîáû çàíèìàåò 0 áàéò è íå ìîæåò áûòü îòêðûò.
Âûÿñíèëîñü, ÷òî â êîìàíäíîé ñòðîêå ýòîò ñïîñîá íå äåéñòâóåò, à âîò ïðè èñïîëüçîâàíèè ñòàíäàðòíûõ ñèñòåìíûõ êîìàíä (API), íàïðèìåð, èç ñðåäû ðàçðàáîòêè ïðîãðàìì Delphi âñ¸ óñïåøíî ðàáîòàåò.
Èòàê, âåñü ôîêóñ â òîì, ÷òî âìåñòî îáû÷íîãî ëîêàëüíîãî èìåíè ôàéëà èëè ïîëíîãî ïóòè íåîáõîäèìî óêàçûâàòü ïîëíûé ïóòü, ïðåäâàðÿÿ åãî êîìáèíàöèåé “?” (÷òî ïðåäïî÷òèòåëüíåå) èëè “.”. Ïîëó÷èòñÿ, ïðèáëèçèòåëüíî ñëåäóþùåå: “?c:DownloadsCABM909J.”
Äàëåå ìîæíî ðàáîòàòü ñ ôàéëîì êàê îáû÷íî, ò.å. ìîæíî ïèñàòü â íåãî, ÷èòàòü èç íåãî, êîïèðîâàòü, óäàëÿòü è äåëàòü âñ¸ îñòàëüíîå, èñïîëüçóÿ ñòàíäàðòíûå ôóíêöèè. Íàäî ëèøü íå çàáûâàòü, ÷òî âåçäå, ãäå òðåáóåòñÿ óêàçàíèå èìåíè ôàéëà, íåîáõîäèìî óêàçûâàòü ïîëíûé ïóòü ñ UNC-ïðåôèêñîì.
Ïðè òåñòèðîâàíèè âûÿñíèëîñü, ÷òî èñïîëüçîâàíèå ïðåôèêñà “?” áîëåå íàä¸æíî, ÷åì “.”. Ïðè èñïîëüçîâàíèè âòîðîãî ïðåôèêñà, ê ïðèìåðó, ìîæíî ïîòåðïåòü íåóäà÷ó ïðè ïîïûòêå óäàëåíèÿ ôàéëà.
Èòàê, åñëè âû çíàêîìû ñ ïðîãðàììèðîâàíèåì íà Delphi, òî ñòðîêà óäàëåíèÿ ôàéëà ìîæåò âûãëÿäåòü ñëåäóþùèì îáðàçîì:
 
DeleteFile(‘?C:DownloadsCABM909J.’);
 
Ìîþ ïðîãðàììó ïîä íàçâàíèåì NTFS fixer, ïîçâîëÿþùóþ óäàëÿòü òàêèå íåêîððåêòíûå ôàéëû, ìîæíî ñêà÷àòü íà ñàéòå http://amonit.sulfurzona.com â ðàçäåëå «Ñîôò».
 
Ñïîñîá âòîðîé
 
Çàêëþ÷àåòñÿ â ïîäñòàíîâêå ïîñòôèêñà “.” â êîíöå èìåíè. Àíàëîãè÷íî ïîçâîëÿåò ñîâåðøàòü ìàíèïóëÿöèè ñ ôàéëàìè è ïàïêàìè, ñ òåì ëèøü îòëè÷èåì, ÷òî ñïåöèàëüíóþ êîìáèíàöèþ ñèìâîëîâ “.” ñëåäóåò ñòàâèòü íå â íà÷àëå ïóòè, à â êîíöå, ñðàçó çà èìåíåì.
Äàííûé ñïîñîá ïðèìåíèì è ê ïàïêàì ïðè èñïîëüçîâàíèè ñòàíäàðòíûõ êîìàíä CopyFile, MoveFile, MkDir, RmDir è íåêîòîðûõ äðóãèõ.  êîìàíäíîé ñòðîêå äàííûé ñïîñîá ìîæíî ïðèìåíÿòü òîëüêî ê êàòàëîãàì. Òàê, íàïðèìåð, åñëè íåîáõîäèìî, ìîæíî ñîçäàòü ïàïêó ñ íåñòàíäàðòíûì èìåíåì “.HELLO.” (â íà÷àëå è â êîíöå èìåíè òî÷êà) êîìàíäîé:
 
mkdir .HELLO..
 
Ïîñëå ýòîãî óäàëèòü ïàïêó îáû÷íûì ñïîñîáîì ÷åðåç ôàéëîâûé ìåíåäæåð èëè êîìàíäíóþ ñòðîêó íå ïîëó÷èòñÿ:
 
C:Proba>rd .hello.
Íå óäàåòñÿ íàéòè óêàçàííûé ôàéë.
 
Windows: Ëå÷èì ãëþ÷íûå ôàéëû NTFS 
Ðèñ. 1
 
Äëÿ óñïåøíîãî óäàëåíèÿ òàêîé ïàïêè íåîáõîäèìî êîìàíäó òîæå äîïîëíèòü ïîñòôèêñîì (ñì. ðèñ. 1):
 
C:Proba>rd .hello..
 
Áäèòåëüíîñòü íå ïîìåøàåò
 
Äåëî óñóãóáëÿåòñÿ òåì, ÷òî òàêîé ñïîñîá ìîãóò èñïîëüçîâàòü è ñîìíèòåëüíûå ëè÷íîñòè, çàíèìàþùèåñÿ íàïèñàíèåì âèðóñîâ èëè ïðîñòî âðåäèòåëè. Ñîçäàâ ïàïêó èëè ôàéë ñ íåêîððåêòíûì íàçâàíèåì, çëîóìûøëåííèê ñîçäà¸ò îáëàñòü, ñîâåðøåííî íå äîñòóïíóþ íåîñâåäîìë¸ííîìó ïîëüçîâàòåëþ, è ìîæåò ñêðûòü â íåé ÷òî óãîäíî è äåëàòü ñ íåé ÷òî çàõî÷åò.
Ñðåäñòâàìè Windows íåâîçìîæíî óçíàòü ñïèñîê ôàéëîâ èç òàêîé ïàïêè, è òåì ñàìûì ïîëó÷àåòñÿ çàùèòà íå õóæå àðõèâà ñ ïàðîëåì! Ñëåäóåò îòìåòèòü, ÷òî ïðîãðàììà scandisk è äðóãèå ïîäîáíûå åé óòèëèòû ïî÷åìó-òî íå âèäÿò íè÷åãî ñòðàííîãî â ôàéëàõ ñ òàêèìè èìåíàìè è äàæå íå ïûòàþòñÿ èñïðàâèòü èõ.
Íî ïîñëå ïðî÷òåíèÿ ýòîé ñòàòüè, äóìàþ, âû ïîëó÷èòå åù¸ îäèí ýôôåêòèâíûé èíñòðóìåíò â áîðüáå ñ ãëþêàìè è âèðóñàìè.
 

 
 
 
 
2009 - 2024 © ..
.
"" .
Comput.com.ua, .
 @Mail.ru   YandeG