Πώς να διορθώσετε το ζήτημα «Το όνομα αρχείου είναι πολύ μεγάλο» στα Windows

Εάν έχετε δει ποτέ αυτό το ζήτημα, ήταν πιθανώς μια απλή λύση για εσάς. Εάν έχετε δει αυτό το σφάλμα περισσότερες από δύο φορές, τότε γνωρίζετε επίσης ότι μπορεί να είναι ένα περίπλοκο ζήτημα που πρέπει να διορθωθεί μερικές φορές.

Ας ελπίσουμε ότι θα συναντήσετε μόνο την ποικιλία εύκολης επιδιόρθωσης, αλλά θα σας προετοιμάσουμε και για τις λιγότερο εύκολες, εγγυημένες επιδιορθώσεις.

Γιατί το μήκος ονόματος αρχείου είναι ακόμη και πρόβλημα στα Windows;(Why Is Filename Length Even An Issue In Windows?)

Υπάρχει μακρά ιστορία όσον αφορά τα μήκη των ονομάτων αρχείων που αποτελούν πρόβλημα για λειτουργικά συστήματα όπως τα Windows(Windows) . Υπήρχε μια εποχή που δεν μπορούσατε να έχετε ονόματα αρχείων μεγαλύτερα από 8 χαρακτήρες συν μια επέκταση αρχείου 3 χαρακτήρων. Το καλύτερο που θα μπορούσατε να κάνετε ήταν κάτι σαν το myresume.doc(myresume.doc) . Αυτός ήταν ένας περιορισμός που ίσχυε από τη σχεδίαση του συστήματος αρχείων.

Τα πράγματα έγιναν καλύτερα καθώς κυκλοφόρησαν νέες εκδόσεις των Windows . Περάσαμε από ένα παλιό, περιορισμένο, σύστημα αρχείων σε κάτι που ονομάζεται Σύστημα Αρχείων Νέας Τεχνολογίας(New Technology File System) ( NTFS ). Το NTFS(NTFS) μας οδήγησε σε ένα σημείο όπου ένα όνομα αρχείου θα μπορούσε να έχει μήκος 255 χαρακτήρες και το μήκος της διαδρομής του αρχείου θα μπορούσε ενδεχομένως να φτάσει τους 32.767 χαρακτήρες. Πώς μπορούμε, λοιπόν, να έχουμε ονόματα αρχείων που είναι πολύ μεγάλα;

Τα Windows(Windows) έχουν πράγματα γνωστά ως μεταβλητές συστήματος. Αυτές είναι μεταβλητές στις οποίες βασίζονται τα Windows για τη λειτουργία τους, επειδή (Windows)τα Windows(Windows) θα γνωρίζουν πάντα τι σημαίνουν οι μεταβλητές και πού βρίσκονται, ακόμα και όταν μετακινούμε bit και byte παντού. Η μεταβλητή συστήματος MAX_PATH είναι αυτή που περιορίζει τα ονόματα αρχείων και τις διαδρομές αρχείων σε λιγότερους από 260 χαρακτήρες.

Όντας μια μεταβλητή, θα νομίζατε ότι θα μπορούσαμε να την αλλάξουμε. Όχι, δεν πρέπει. Θα ήταν σαν να βγάζατε μια κλωστή από ένα πουλόβερ. Μόλις αλλάξει μια μεταβλητή συστήματος, άλλες μεταβλητές συστήματος και στοιχεία που εξαρτώνται από αυτές αρχίζουν να ξετυλίγονται.

Πώς το διορθώνουμε λοιπόν;

Η Εύκολη Διόρθωση(The Easy Fix)

Εάν είστε τυχεροί, θα λάβετε το σφάλμα και θα γνωρίζετε ακριβώς ποιο όνομα αρχείου προκαλεί το πρόβλημα. Ή τουλάχιστον πού να βρείτε το αρχείο. Ίσως έχετε ένα όνομα αρχείου που μοιάζει κάπως έτσι:

C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx

Είναι προφανές ποιος είναι ο δράστης σε αυτή την περίπτωση. Βρείτε το αρχείο στην Εξερεύνηση των Windows(Windows Explorer) ή στην Εξερεύνηση αρχείων(File Explorer) όπως λέγεται στα Windows 10 , κάντε κλικ μια φορά πάνω του, πατήστε F2 για να το μετονομάσετε και αλλάξτε αυτό το ανόητο όνομα αρχείου σε κάτι πιο λογικό. Το πρόβλημα(Problem) λύθηκε.

Οι λιγότερο εύκολες διορθώσεις(The Less Easy Fixes)

Δεν είναι πάντα τόσο εύκολο να διορθώσετε αυτό το πρόβλημα. Μερικές φορές ενδέχεται να μην μπορείτε να αλλάξετε τα ονόματα των αρχείων ή των καταλόγων για οποιονδήποτε λόγο.

Οι παρακάτω λύσεις θα κάνουν το κόλπο για εσάς. Δεν είναι δύσκολο να γίνουν.

Μετακίνηση(Move) , διαγραφή(Delete) ή αντιγραφή αρχείων ή καταλόγων χρησιμοποιώντας το PowerShell(Or Copy Files Or Directories Using PowerShell)

Μερικές φορές εμφανίζεται ένα σφάλμα όταν προσπαθείτε να μετακινήσετε, να διαγράψετε ή να αντιγράψετε καταλόγους όπου ο αριθμός χαρακτήρων για τη διαδρομή του αρχείου είναι μεγαλύτερος από 260.

Σημειώστε ότι οι λέξεις κατάλογος και φάκελος είναι εναλλάξιμες. Θα χρησιμοποιήσουμε τον «κατάλογο» στο εξής. Τα παρακάτω cmdlet PowerShell μπορούν επίσης να χρησιμοποιηθούν σε αρχεία.

Ίσως η διαδρομή του αρχείου να μοιάζει κάπως έτσι:

C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx

Αυτή η διαδρομή αρχείου έχει μήκος 280 χαρακτήρες. Επομένως, δεν μπορούμε να αντιγράψουμε τον κατάλογο από εκεί σε κάπου αλλού με την κανονική μέθοδο αντιγραφής-επικόλλησης. Λαμβάνουμε το σφάλμα Destination Path Too Long .

Ας υποθέσουμε ότι για οποιονδήποτε λόγο, δεν μπορούμε να μετονομάσουμε τους καταλόγους στους οποίους είναι ένθετο το αρχείο. Τι κάνουμε?

Ανοίξτε το PowerShell(Open PowerShell) . Εάν δεν έχετε χρησιμοποιήσει ακόμα το PowerShell , απολαύστε το άρθρο μας Χρήση του PowerShell για οικιακούς χρήστες – Οδηγός για αρχάριους(Using PowerShell for Home Users – A Beginner’s Guide) . Ωστόσο, μπορείτε να κάνετε τα επόμενα βήματα χωρίς να διαβάσετε το άρθρο.

Όταν ανοίξει το PowerShell , θα βρίσκεστε στη ρίζα του καταλόγου χρήστη σας. Ακολουθήστε(Follow) την υπόθεση υποθέτοντας ότι το C:\Users\guymc είναι ο κατάλογος χρήστη σας.

Ο κατάλογος με το όνομα This βρίσκεται μέσα στον κατάλογο Documents . Για να μετακινηθούμε στον κατάλογο Έγγραφα(Documents) , χρησιμοποιούμε την εντολή DOS cd Documents

Θα δείτε την προτροπή αλλαγής σε C:\Users\guymc\Documents . Αυτό είναι καλό. Εργαζόμαστε πιο κοντά στους καταλόγους που θα κάνουν τα πράγματα πιο εύκολα.

Αντιγραφή καταλόγου με χρήση αντιγραφής αντικειμένου

Θέλουμε να αντιγράψουμε τον κατάλογο This και τα περιεχόμενά του στο ThatNewFolder . Ας χρησιμοποιήσουμε το PowerShell cmdlet Copy-Item με τις παραμέτρους -Destination και -Recurse .

-Ο προορισμός λέει στο PowerShell πού θέλουμε να βρίσκεται το αντίγραφο. -Το Recurse λέει στο PowerShell να αντιγράψει όλα τα στοιχεία μέσα στον προορισμό. Η αντιγραφή αφήνει τα πρωτότυπα εκεί που βρίσκονται και όλα τα νέα στον προορισμό.

Copy-Item This -Destination ThatNewFolder -Recurse

Μετακίνηση καταλόγου χρησιμοποιώντας το Move-Item

Ας υποθέσουμε ότι θέλουμε να μετακινήσουμε τον κατάλογο This, και όλους τους καταλόγους και τα αρχεία σε αυτόν, στο ThatNewFolder . Η μετακίνηση δεν αφήνει το πρωτότυπο στη θέση του.

Μπορούμε να χρησιμοποιήσουμε το PowerShell cmdlet Move-Item με τις παραμέτρους -Path και -Destination . -Η διαδρομή ορίζει το αντικείμενο που θέλουμε να μετακινήσουμε και -Ο προορισμός(-Destination) λέει στο PowerShell πού το θέλουμε. 

Το cmdlet θα βάλει This μέσα στο ThatNewFolder . Θα μετακινήσει επίσης όλα όσα βρίσκονται μέσα στον κατάλογο Αυτός. Το Move-Item μπορεί να χρησιμοποιηθεί για τη μετακίνηση αρχείων ή καταλόγων και λειτουργεί ανεξάρτητα από τη διαδρομή αρχείου ή το μήκος του ονόματος αρχείου.

Move-Item -Path This -Destination ThatNewFolder

Για να βεβαιωθείτε ότι λειτούργησε, χρησιμοποιήστε την εντολή cd ThatNewFolder για να μπείτε στο ThatNewFolder . Στη συνέχεια, χρησιμοποιήστε την εντολή dir για να παραθέσετε τους καταλόγους στο ThatNewFolder . Θα δείτε ότι ο κατάλογος αυτός βρίσκεται εκεί.

Διαγραφή καταλόγου χρησιμοποιώντας το Remove-Item

Εάν θέλουμε να διαγράψουμε τον κατάλογο Αυτός(This ) και ό,τι υπάρχει σε αυτόν, χρησιμοποιούμε το cmdlet Remove-Item .

Το cmdlet Remove-Item έχει κάποια ενσωματωμένη ασφάλεια που καθιστά δύσκολη τη διαγραφή ενός καταλόγου με πράγματα μέσα του. Στο παράδειγμά μας, γνωρίζουμε ότι θέλουμε να διαγράψουμε τα πάντα, επομένως θα χρησιμοποιήσουμε τις παραμέτρους -Recurse για να το κάνουμε να διαγράψει τα πάντα μέσα και -Force για να το κάνουμε αυτό χωρίς να μας ρωτήσουμε αν είμαστε σίγουροι για κάθε στοιχείο μέσα.

Προειδοποιήστε! Η ανάκτηση οτιδήποτε έχει διαγραφεί με αυτόν τον τρόπο θα ήταν εξαιρετικά δύσκολη. Μπορείτε να δοκιμάσετε τις μεθόδους στο Πώς να ανακτήσετε τυχαία διαγραμμένα αρχεία , αλλά μην περιμένετε πολλά.

Remove-Item This -Recurse -Force

Μπορείτε να χρησιμοποιήσετε ξανά την εντολή dir για να βεβαιωθείτε ότι έχει φύγει.

Κάντε τα Windows 10 Accept Long File Paths(Make Windows 10 Accept Long File Paths)

Εάν γνωρίζετε ότι θα χρησιμοποιείτε επανειλημμένα μεγάλες διαδρομές αρχείων και μεγάλα ονόματα αρχείων, είναι πιο εύκολο να κάνετε τα Windows(Windows) να λειτουργούν για εσάς. Δεν έχει νόημα να χρησιμοποιείτε το PowerShell για να κάνετε τη δουλειά κάθε μέρα.

Υπάρχουν δύο τρόποι που μπορούμε να το κάνουμε αυτό. Το ένα είναι για χρήστες Windows 10 Home και το άλλο είναι για χρήστες Windows 10 (Windows 10) Pro ή Enterprise . Αυτές οι μέθοδοι μπορεί να λειτουργούν για Windows 8.1 ή παλαιότερες εκδόσεις, αλλά δεν μπορούμε να το εγγυηθούμε.

Κάντε(Make) τα Windows 10 Home Accept Long File Paths

Για να κάνουμε τα Windows 10 (Windows 10) Home να αποδέχονται μεγάλες διαδρομές αρχείων, πρέπει να ανοίξουμε τον Επεξεργαστή Μητρώου(Registry Editor) . Εάν δεν έχετε εργαστεί ξανά στον Επεξεργαστή Μητρώου(Registry Editor) , να είστε προσεκτικοί. Η κατά λάθος διαγραφή ή αλλαγή πραγμάτων εδώ μπορεί να σταματήσει την πλήρη λειτουργία των Windows .

Πάντα να δημιουργείτε αντίγραφο ασφαλείας του μητρώου σας πριν κάνετε οποιεσδήποτε αλλαγές. Μάθετε όλα όσα πρέπει να ξέρετε για αυτό στον Απόλυτο Οδηγό μας για τη δημιουργία αντιγράφων ασφαλείας και την επαναφορά του μητρώου των Windows( Ultimate Guide to Backing Up and Restoring the Windows Registry) .

Αφού ανοίξετε τον Επεξεργαστή(Editor) Μητρώου και δημιουργήσετε το αντίγραφο ασφαλείας, μεταβείτε στην τοποθεσία HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem και βρείτε το κλειδί LongPathsEnabled .

Κάντε διπλό κλικ στο LongPathsEnabled . Στο πεδίο Δεδομένα τιμής:(Value data:) βεβαιωθείτε ότι ο αριθμός 1 βρίσκεται εκεί. Κάντε κλικ στο OK(OK) για να πραγματοποιήσετε την αλλαγή.

Βγείτε από τον Επεξεργαστή Μητρώου(Registry Editor) και θα μπορείτε να εργάζεστε με τρελές μεγάλες διαδρομές αρχείων τώρα.

Κάντε(Make) Windows 10 Pro ή Enterprise Accept Long File Paths(Pro Or Enterprise Accept Long File Paths)

Για να επιτρέψουμε στα Windows 10 Pro ή Enterprise να χρησιμοποιούν μεγάλες διαδρομές αρχείων, θα χρησιμοποιήσουμε το πρόγραμμα επεξεργασίας πολιτικής ομάδας(Group Policy Editor) . Είναι ένα εργαλείο που μας επιτρέπει να ορίζουμε πολιτικές για τον τρόπο λειτουργίας των Windows σε επίπεδο υπολογιστή και χρήστη.

Έχουμε πολλά άρθρα σχετικά με τη χρήση της πολιτικής ομάδας για ενέργειες όπως η απενεργοποίηση ή η ενεργοποίηση των επιλογών του Internet Explorer( disabling or enabling Internet Explorer options) ή η προσθήκη ενός μηνύματος στην οθόνη σύνδεσης( adding a message to the logon screen) .

Ανοίξτε το πρόγραμμα επεξεργασίας πολιτικής ομάδας(Group Policy Editor) μεταβαίνοντας στο μενού Έναρξη και πληκτρολογώντας (Start)gpedit . Το κορυφαίο αποτέλεσμα θα πρέπει να είναι Επεξεργασία πολιτικής ομάδας(Edit group policy) . Κάντε διπλό κλικ σε αυτό.

Μόλις ανοίξει το πρόγραμμα επεξεργασίας πολιτικής ομάδας(Group Policy Editor) , μεταβείτε στην Computer Configuration > Administrative Templates > System > Filesystem . Εκεί θα δείτε την πολιτική Enable Win32 long paths .

Κάντε διπλό κλικ σε αυτό για να επεξεργαστείτε τη ρύθμιση πολιτικής. Αλλάξτε το από Απενεργοποιημένο(Disabled ) σε Ενεργοποιημένο(Enabled) και, στη συνέχεια, κάντε κλικ στο κουμπί ΟΚ(OK ) για να πραγματοποιήσετε την αλλαγή. 

Η πολιτική ενδέχεται να μην τεθεί σε ισχύ αμέσως. Ωστόσο, μπορείτε να επιβάλετε την ενημέρωση της πολιτικής ομάδας .( force the group policy to update)

Αυτό είναι(That’s It)

Υπάρχουν μερικοί άλλοι τρόποι για να επιλύσετε μεγάλα ονόματα αρχείων και διαδρομές αρχείων, αλλά αυτό που έχουμε διαβάσει εδώ είναι οι απλούστερες, πιο αποτελεσματικές μέθοδοι.



About the author

Είμαι ειδικός των Windows και εργάζομαι στη βιομηχανία λογισμικού για πάνω από 10 χρόνια. Έχω εμπειρία με συστήματα Microsoft Windows και Apple Macintosh. Οι δεξιότητές μου περιλαμβάνουν: διαχείριση παραθύρων, υλικό και ήχο υπολογιστή, ανάπτυξη εφαρμογών και πολλά άλλα. Είμαι έμπειρος σύμβουλος που μπορεί να σας βοηθήσει να αξιοποιήσετε στο έπακρο το σύστημά σας Windows.



Related posts