საქაღალდე არ შეიცავს ფაილის გრძელ სახელს. თუ გრძელი სახელის მქონე ფაილი არ წაიშლება და გამოჩნდება შეცდომა, რომ ფაილურ სისტემას არ აქვს ასეთი გრძელი სახელების მხარდაჭერა

სათაური გრძელი აღმოჩნდა, მაგრამ მიუთითებს პრობლემის არსზე, რომელიც აქ იქნება აღწერილი. ამას წინათ არცთუ ისე სახარბიელო სიტუაცია დამხვდა. მყარი დისკის დახარისხებისა და არასაჭირო ნივთებისგან გაწმენდისას აღმოვაჩინე, რომ ერთ-ერთი ფაილი არ იყო წაშლილი, მაგრამ გამოჩნდა შემდეგი შეცდომა: „ფაილური სისტემა არ უჭერს მხარს ფაილების ამხელა სახელებს. სცადეთ ფაილის გადატანა საქაღალდეში უფრო მოკლე ბილიკის სიგრძით ან მიუთითეთ ფაილის უფრო მოკლე სახელი და სცადეთ ხელახლა."

არა მხოლოდ ფაილის წაშლა შემეძლო, არამედ სახელიც ვერ შევცვალე უფრო მოკლე სახელით. ბევრისთვის ეს ჩიხად ჩანდა, რადგან ირკვევა, რომ ფაილი არ არის წაშლილი.

სინამდვილეში, პრობლემის მოგვარება ძალიან მარტივად და სწრაფად შეიძლება, ახლა კი მე აღვწერ მის გადაჭრის ორ მეთოდს და თქვენზეა გადასაწყვეტი რომელი გამოიყენოთ.

რა უნდა გააკეთოს, თუ წყაროსკენ მიმავალი გზა ძალიან გრძელია, როგორ წაშალოთ ასეთი ფაილი?

თუ თქვენ გაქვთ ფაილი, რომელიც არ არის წაშლილი გრძელი სახელის გამო, პრობლემის გადასაჭრელად რამდენიმე ვარიანტი არსებობს. მაგალითად, ფაილი ჩასმულია რამდენიმე დირექტორიაში, ვთქვათ ხუთი ან თუნდაც ათი საქაღალდე, რომელსაც აქვს 10-20 სიმბოლოს სახელები, მაშინ ეს შეიძლება იყოს ფაილის არ წაშლის მიზეზი. ფაქტია, რომ Windows არ უჭერს მხარს არცერთ ფაილს, რომლის სახელები 260 სიმბოლოზე მეტია. თუ ეს ლიმიტი გადააჭარბებს, გამოჩნდება შეცდომა, რომელიც მე ვაჩვენე ზემოთ. საქაღალდეების რაოდენობა საკუთარი სახელებით და თავად ფაილის სახელი უნდა იყოს 260 სიმბოლოზე ნაკლები. სისტემას ასევე აქვს ერთი ფუნქცია - თუ ეს ლიმიტი გადააჭარბა, ჩვენ მაინც შეგვიძლია საქაღალდეების გადარქმევა. ეს ნიშნავს, რომ თქვენ უნდა გადაარქვათ ყველა საქაღალდე მოკლე სახელით, მაგალითად, ასო ან ნომერი.


ეს პრობლემა შეიძლება წარმოიშვას არა მხოლოდ იმიტომ, რომ თქვენ დაასახელეთ ასეთი გრძელი სახელი. ეს დამემართა, როცა გადავწყვიტე ვებგვერდის ფაილების სერვერიდან გადმოტვირთვა და რაღაცის გაკეთება. ვინაიდან ფაილები აღარ იყო საჭირო, წავშალე მთელი დირექტორია საიტის ფაილებთან ერთად, მაგრამ როგორც იქნა, შეიცავდა ფაილს ძალიან გრძელი სახელით, პლუს საქაღალდეების სახელები და ეს არ მაძლევდა ყველაფრის წაშლის საშუალებას.

მეთოდი მეორედაეხმარება, თუ პირველი ვერ მოხერხდა. ფაქტია, რომ გრძელი სახელის მქონე ფაილამდე მიმავალი ყველა საქაღალდის გადარქმევა შეუძლებელია და იგივე ფაილური სისტემის შეცდომა მოხდება. შემდეგ შეგიძლიათ შექმნათ ვირტუალური დისკი ნებისმიერი ქვესაქაღალდის გამოყენებით, რომელიც მიდის წაშლილ ფაილამდე. ახლა მე გაჩვენებთ როგორ გააკეთოთ ეს.

გახსენით ბრძანების ხაზი. ამისათვის დააჭირეთ Win+R კომბინაციას და შეიყვანეთ ბრძანება cmd. შეგიძლიათ დააწკაპუნოთ მაუსის მარჯვენა ღილაკით Start მენიუზე (ან Win+X კლავიშების კომბინაციაზე) და აირჩიოთ Command Prompt.

ახლა თქვენ დაწერეთ ბრძანება, რომელიც შექმნის ჩვენთვის ვირტუალურ დისკს:

თქვენ უნდა აირჩიოთ დისკის ასო, რომელიც არ არის დაკავებული სხვების მიერ. სისტემის დანაყოფი ჩვეულებრივ მითითებულია როგორც C, ხოლო მეორე დანაყოფი, როგორც D ან E, შემდეგ აირჩიეთ ნებისმიერი სხვა.

საქაღალდისკენ მიმავალი გზა უნდა იყოს მითითებული დისკიდან. თუ ეს თქვენთვის რთულია, მაშინ გახსენით საქაღალდე, რომელიც იმოქმედებს როგორც ვირტუალური დისკი და დააკოპირეთ მისკენ მიმავალი გზა Explorer-ში ზედა.

ჩემი ბრძანება ასე გამოიყურება:

როდესაც მივდივართ My Computer-ზე, თქვენ უნდა ნახოთ დისკი იქ ასოებით, რომელიც მას მივუნიშნეთ ბრძანების ხაზიდან. ამრიგად, ფაილისკენ მიმავალი გზა თითქმის ნახევარით შემცირდება, რაც ნიშნავს, რომ სიმბოლოების მთლიანი სიგრძე შეიძლება იყოს 260 სიმბოლოზე ნაკლები. ახლა თქვენ შეგიძლიათ სცადოთ მოშორება წაშლილი.


ვირტუალური დისკის წასაშლელად თქვენ უნდა შეიყვანოთ ბრძანება:

substDiskLetter/d

Total Commander-ის გამოყენებით

ინტერნეტში აღმოვაჩინე მეთოდი, რომელიც საშუალებას გაძლევთ წაშალოთ ფაილები, რომელთა წაშლა შეუძლებელია . რა თქმა უნდა, მინუსი აქ არის ის, რომ თქვენ მოგიწევთ დამატებითი პროგრამული უზრუნველყოფის დაყენება თქვენს კომპიუტერში და ყველას არ სურს ამის გაკეთება. ნებისმიერ შემთხვევაში, ამ მეთოდს აქ დავტოვებ, თუ ვინმეს მოუნდება მისი გამოყენება.

ჩამოტვირთეთ და დააინსტალირეთ პროგრამა. მოდით გადავიდეთ ჩანართზე "ფაილი"დააჭირეთ განყოფილებას "ატრიბუტების შეცვლა". ჩნდება ფანჯარა, სადაც ყველა ატრიბუტიდან ვხსნით ნიშანს. თუ ზედა პუნქტის გვერდით არ არის გამშვები ნიშანი "საქაღალდის შიგთავსის დამუშავება"- აირჩიე. ახლა იგივე პროგრამიდან ვცდილობთ წაშალოთ ფაილი გრძელი სახელით.


ჩვენ ვიყენებთ 7-Zip არქივერს

ამ ამოცანისთვის დაგვჭირდება 7-Zip არქივი. დააწკაპუნეთ მაუსის მარჯვენა ღილაკით საწყის დირექტორიაზე და მიუთითეთ მაუსი დანაყოფზე "7-Zip"და აირჩიეთ ელემენტი "Არქივში დამატება".

ჩნდება ფანჯარა, რომელშიც მხოლოდ ერთი ველი უნდა მონიშნოთ. "ფაილების წაშლა შეკუმშვის შემდეგ". შემდეგ დააჭირეთ OK.

ამ ყველაფრის არქივი იქმნება სამუშაო მაგიდაზე და გრძელი ფაილების მქონე საქაღალდეები უბრალოდ იშლება. თქვენ შეგიძლიათ წაშალოთ თავად არქივი უპრობლემოდ.

ეს არის გზები, რომლებიც ჩვენ განვიხილეთ ფაილის წაშლის შეცდომის გამოსასწორებლად. იქნებ გაქვთ სხვა ვარიანტები, თუ როგორ უნდა გავაკეთოთ ეს?

ერთ-ერთ პროექტზე მქონდა შესაძლებლობა გამომეყენებინა მოდული Drupal - კლიენტის მხრიდან ვალიდაციისთვის. და ეს არ არის ის, რომ მოდული არის ცუდი, პირიქით, ის სრულად ასრულებს თავის ფუნქციონირებას, კერძოდ, ის ამოწმებს ფორმას კლიენტის მხარეს. მაგრამ მოდულის ფაილებს საკმაოდ გრძელი სახელები აქვთ და ერთ-ერთი ასეთი ფაილის გამო, ჩვენმა ჯიტმა ადეკვატურად შეწყვიტა მუშაობა. რადგან ამ საქაღალდეში ინფორმაციის ჩაწერა აღარ შემეძლო შემდეგი შეცდომის გამო:

ფაილის/საქაღალდის კოპირება შეუძლებელია. დანიშნულების ფაილის სახელი/გზა ძალიან გრძელია

ან ასევე, მაგრამ ინგლისურად:

ფაილის სახელ(ებ)ი ძალიან გრძელი იქნება დანიშნულების საქაღალდისთვის. შეგიძლიათ შეამციროთ ფაილის სახელი და სცადოთ ხელახლა, ან სცადოთ მდებარეობა, რომელსაც აქვს უფრო მოკლე გზა.

მცირე კვლევის შემდეგ, აღმოჩნდა, რომ Windows 7-ის მიერ მხარდაჭერილი ბილიკის მაქსიმალური სიგრძე 260 სიმბოლოა. და რადგან ყველა პროექტი ინახება ჩემს საქაღალდეში C:\Users\\Documents\xampp\htdocs\git\- მაშინ ყველა პროექტი პოტენციურად რისკის ქვეშ იყო.

გადაწყვეტის ვარიანტები

მე ვნახე 2 შესაძლო გამოსავალი:

1. გადაიტანეთ xampp დისკის თავში

2. შექმენით მეტსახელი ამ ბილიკისთვის (მაგალითად, დისკი სახელად H)

მეორე ვარიანტი უფრო მარტივი ჩანდა, რადგან xampp-სთვის ბილიკები არ შეიცვლება, მაგრამ git-ით ჩვენ შევდივართ საქაღალდეებში შექმნილი ალიასის მეშვეობით. ისე, რომ IDE-მ სწორად იმუშაოს, თქვენ მოგიწევთ პროექტების გზის შეცვლა.

ასე რომ, იმისათვის, რომ Windows-მა ჩაანაცვლოს დისკის სახელი თქვენი გრძელი ბილიკისთვის, გაუშვით ბრძანება cmd-ის საშუალებით:

ქვეჯგუფი H: C:\Users\\Documents\xampp\htdocs\git\

საიდუმლო არ არის, რომ Windows Explorer, ისევე როგორც Windows-ის სხვა აპლიკაციების უმეტესობა, მათ შორის PowerShell, არ შეუძლია იმუშაოს ფაილური სისტემის ობიექტებთან ღრმა საქაღალდეში ჩასმული. რომლის ბილიკის სიგრძე აღემატება 260 სიმბოლოს. უფრო მეტიც, ეს შეზღუდვა არსებობს მხოლოდ აპლიკაციის დონეზე და თავად NTFS ფაილური სისტემა მხარს უჭერს ფაილის ბილიკებს მდე 32767 პერსონაჟები.

ეს შეზღუდვა დაწესებულია ბიბლიოთეკის მიერ Win32 APIდა რომლის მაქსიმალური ბილიკის სიგრძეა 260 სიმბოლო ( MAX_PATH=260). ზოგადად, ბილიკი ჩამოყალიბებულია შემდეგი ელემენტებისგან: +[256_სიმბოლოების_გზა]+[ ] და ერთი დირექტორია/ფაილის მაქსიმალური სიგრძე NTFS-ში არის 255 სიმბოლო უნიკოდში. Unicode API ფუნქციების გამოყენებისას შესაძლებელია გზის გამოყენება 32767 პერსონაჟები. ამის წყალობით, მრავალი მესამე მხარის პროგრამა (იგივე პოპულარული ფაილის მენეჯერები, მაგალითად შორსდა სულ მეთაური) ყოველგვარი სირთულის გარეშე ამუშავებს ფაილებს/საქაღალდეებს, რომელთა ბილიკის სიგრძე აღემატება 260 სიმბოლოს.

რჩევა. თქვენ შეგიძლიათ გადალახოთ Win32 API-ის ეს შეზღუდვა და იმუშაოთ ფაილის გრძელ სახელებთან UNC ბილიკის ფორმატის გამოყენებით, ფაილის აბსოლუტური გზის მითითებით გაფართოებული სიგრძის ბილიკის პრეფიქსის გამოყენებით. \\?\ . მაგალითად, მოსწონს ეს \\?\C:\SomeLongPath\LongNameFile.txt

ეს შეზღუდვა ასევე არ ვრცელდება, როდესაც მომხმარებლებს აქვთ ქსელური წვდომა ფაილებზე SMB პროტოკოლის საშუალებით (ამის გამო, დირექტორია სტრუქტურები გრძელი ბილიკებით არის გავრცელებული ფაილ სერვერებზე მომხმარებლის მონაცემებით). ადმინისტრატორი, რომელიც ინახავს ამ სერვერს, არ შეუძლია მართოს (წაშლა/გადატანა) ფაილები გრძელი ბილიკებით Windows Explorer-ის სტანდარტული ინტერფეისით. როდესაც ცდილობთ ფაილის შექმნას/დაკოპირებას ასეთ დირექტორიაში, ჩნდება შეცდომა:

დანიშნულების გზა ძალიან გრძელია. ფაილის სახელ(ებ)ი ძალიან გრძელი იქნება დანიშნულების საქაღალდისთვის. შეგიძლიათ შეამციროთ ფაილის სახელი და სცადოთ ხელახლა, ან სცადოთ მდებარეობა, რომელსაც აქვს შემოკლებული ბილიკი

სხვა პროგრამებმა/დიალოგურ ფანჯრებმა შეიძლება შეატყობინოს შეზღუდვის არსებობას საკუთარი გზით.

დამეთანხმებით, სასაცილოა, რომ 2014 წელია და ჩვენ კვლავ ვსაუბრობთ 260-სიმბოლოიან ლიმიტზე მაქსიმალური ბილიკის სიგრძეზე Windows-ში... მაგრამ, როგორც ჩანს, მკვეთრი ცვლილებები არ არის მოსალოდნელი უახლოეს მომავალში და თუნდაც უახლესი Windows 10 ტექნიკური გადახედვისას ეს შეზღუდვა ჯერ კიდევ არსებობს.

ამ სტატიაში ჩვენ გაჩვენებთ, თუ როგორ შეგიძლიათ Windows-ში იმუშაოთ ფაილებთან, რომელთა გზა აღემატება 260 სიმბოლოს. ამ შემთხვევაში, ჩვენი ამოცანაა წაშალოთ დირექტორია, რომელიც შეიცავს ფაილებს გრძელი ბილიკის სიგრძით.

როდესაც ცდილობთ წაშალოთ ასეთი დირექტორია Explorer-დან, ჩნდება შეცდომა:

ფაილის სახელ(ებ)ი ძალიან გრძელი იქნება დანიშნულების საქაღალდისთვის. შეგიძლიათ შეამციროთ ფაილის სახელი და სცადოთ ხელახლა, ან სცადოთ მდებარეობა, რომელსაც აქვს შემოკლებული ბილიკი.

Powershell-ს ასევე არ შეუძლია სწორად გაუმკლავდეს დირექტორიებსა და ფაილებს, რომელთა დიდი ბილიკები აღემატება 260 სიმბოლოს. როდესაც თქვენ ცდილობთ წაშალოთ დირექტორია ასეთი ფაილებით (C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath), ჩნდება შეცდომა:

Remove-Item .\verylongpath -Recurse

Remove-Item: მითითებული გზა, ფაილის სახელი ან ორივე ძალიან გრძელია. სრულად კვალიფიციური ფაილის სახელი უნდა იყოს 260-ზე ნაკლები
სიმბოლოები და დირექტორიას სახელი უნდა იყოს 248 სიმბოლოზე ნაკლები.
ხაზზე:1 char:1
+ Remove-Item .\verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: WriteError: (C:\Install\MS S...it\verylongpath:String) , PathTooLongExcepti
on
+ FullyQualifiedErrorId: RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

უმარტივესი ვარიანტი (ეს, ფაქტობრივად, შემოთავაზებულია შეცდომის ფანჯარაში) არის მშობელი საქაღალდეების სახელის შემცირება, გზის მთლიანი სიგრძის შემცირება (მაგრამ ეს ყოველთვის არ გამოიყენება).

Mklink /d c:\install\link "C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath"

კიდევ ერთი ვარიანტი, რომელიც სიმბოლურ ბმულთან მუშაობას მოგაგონებთ, არის პრობლემური საქაღალდის ვირტუალურ დისკზე (ჩვენს მაგალითში X:) გამოსახვა, რითაც ასევე შემცირდება ბილიკის სიგრძე:

ქვეპუნქტი X: "C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath"

ახლა თქვენ შეგიძლიათ იმუშაოთ X: დისკზე მონაცემებთან, ფაილებისკენ მიმავალი გზები, რომლებშიც არ აღემატება ლიმიტს. სამუშაოს დასრულების შემდეგ შეგიძლიათ წაშალოთ ვირტუალური დისკი:

სუბსტე X: / დ

მაგრამ პირადად, რაც ყველაზე მეტად მომწონს ასეთ სიტუაციებში მონაცემების წაშლის ამოცანისთვის არის უნარი robocopy.exe, რომელიც მხარს უჭერს გრძელ ბილიკებთან მუშაობას.

ვარიანტის გამოყენებით /MIR, Robocopy უტილიტას შეუძლია შექმნას წყაროს დირექტორიის სრული ასლი (სარკე) სამიზნე დირექტორიაში. და თუ წყაროს საქაღალდე ცარიელია, სამიზნე საქაღალდეში არსებული ყველა მონაცემი ასევე გასუფთავდება. მოდით შევქმნათ ცარიელი საქაღალდე C:\Install\ ტესტიდა /MIR არგუმენტის გამოყენებით დააკოპირეთ სატესტო საქაღალდის შიგთავსი სამიზნე საქაღალდეში (თუ საქაღალდის სახელი შეიცავს სივრცეებს ​​ან კირილიცას, ბილიკი უნდა იყოს ჩასმული ბრჭყალებში).

Robocopy /MIR C:\Install\test "C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath"

ბრძანების შესრულების შემდეგ, დირექტორია C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath შიგთავსი იწმინდება (ჩანაცვლებულია ცარიელი დირექტორიას შიგთავსით).

ასე რომ, დღეს ჩვენ ვაჩვენეთ რამდენიმე მარტივი ხრიკი, რომელიც შეგიძლიათ გამოიყენოთ ფაილების სერვერებზე საქაღალდეებთან მუშაობისას, რომლებიც შეიცავს საქაღალდეებს, რომელთა ბილიკის სიგრძე აღემატება 260 სიმბოლოს ლიმიტს.

ვინდოუსის მავნე ოპერაციული სისტემა ხელს უშლის ფაილის წაშლას და ყვირის, რომ მისი „წყაროს გზა ძალიან გრძელია“? ამ სტატიაში მე გეტყვით, თუ როგორ მარტივად და მარტივად, ყოველგვარი პროგრამის გარეშე, დაამარცხოთ ეს უბედურება ფაილის სახელის შემცირებით.

წყაროსკენ გზა ძალიან გრძელია - რატომ?

მსურს დაუყოვნებლივ ავხსნა, თუ რატომ ჩნდება სისტემის ასეთი გაფრთხილება და შეუძლებელია ფაილზე (საქაღალდეზე) ძირითადი კოპირების ან წაშლის მოქმედებების შესრულება…

თავად შეტყობინება შეიცავს ამ კითხვაზე პასუხს - Windows ფაილური სისტემა არ უჭერს მხარს (არ ესმის) წყაროს ფაილების სახელებს 255 სიმბოლოზე მეტი.

მაგრამ თქვენი ფაილის ან საქაღალდის სახელი მოკლეა, მაგალითად, „დასვენების ფოტოები“? ფაქტია, რომ "სულელური" სისტემა აღიქვამს ფაილის მთელ გზას, როგორც მის სახელს. თუ თქვენი ფაილი ან საქაღალდე მდებარეობს ფაილ მენეჯერში სადღაც ძალიან ღრმად, მაშინ მისი სახელი ასე გამოიყურება...

ასე რომ, სახელების სიმბოლოები გროვდება ბანდაში 255-ზე მეტი ცალი.

როგორ წავშალოთ წაშლილი ფაილი ან საქაღალდე ამ შემთხვევაში? ეს ძალიან მარტივია - თქვენ უნდა შეამციროთ ფაილის სახელი (გზა) წყობილი საქაღალდეების სახელის გადარქმევით.

როგორ წაშალოთ ფაილი გრძელი სახელით

მე გაჩვენებთ ჩემი მაგალითით, თუ როგორ უნდა წაშალოთ ფაილი გრძელი სახელით, რომელსაც, როგორც სისტემა წერს, ძალიან გრძელი გზა აქვს წყარომდე.

გუშინ გადავწყვიტე გაასუფთავეთ თქვენი კომპიუტერისაიტის ძველი სარეზერვო ასლებიდან, მაგრამ მათ არ სურდათ წაშლა. როგორც მიხვდით, გაფრთხილება გამოჩნდა წყაროსკენ მიმავალი გზა ძალიან გრძელი...

ამ გრძელ გზაზე პირველივე საქაღალდედან დაწყებული, რამდენიმე რამეს დავარქვით სახელი...

...და ისევ სცადა დაეღწია ფაილი ახლა უფრო მოკლე სახელით - ის უსაფრთხოდ წავიდა წაშლილი ფაილების ქვეყანაში.

ბუნებრივია, ახალი ფაილის (საქაღალდის) სახელი უნდა შედგებოდეს ერთი სიმბოლოსგან ან რიცხვისგან, როგორც ჩემს მაგალითში.

ასე მარტივად გვარდება გრძელი სახელის მქონე ფაილების ან საქაღალდეების წაშლის პრობლემა. ეს, რა თქმა უნდა, ერთადერთი მეთოდი არ არის. შეუძლია წაშალეთ სპეციალური პროგრამებითან რეესტრის საშუალებით - უბრალოდ ვაჩვენე სახელმძღვანელო მეთოდი. ზოგისთვის ამას მხოლოდ ერთი წუთი დასჭირდება, ზოგისთვის კი ნახევარი საათი - თქვენი გადასაწყვეტია, როგორ შეამციროთ ფაილის სახელი და ძალიან გრძელი გზა წყარომდე.

ახალი სასარგებლო რჩევები და საინტერესო კომპიუტერული პროგრამები.



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: