[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Προβλήματα που αντιμετωπίζουμε χρησιμοποιώντας τα Windows και τα προγράμματά τους. Νέα & ειδήσεις.

Συντονιστές: Super-Moderators, Software & Hardware Moderators

Απάντηση
Άβαταρ μέλους
DGeorge
Honorary Member
Δημοσιεύσεις: 3753
Εγγραφή: 13 Σεπ 2007 12:59
Τοποθεσία: Καλλιθέα Γενικώς

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από DGeorge » 19 Αύγ 2011 09:58

Ψάχνοντας γενικά στο Internet για θεματάκια περί Windows, έπεσα επάνω σ'αυτό:
Προσοχή στα πολύ μεγάλα ονόματα αρχείων

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

Έτσι, ακόμα και στις πιο πρόσφατες εκδόσεις XP και Vista των Windows υπάρχει ο περιορισμός των 255 χαρακτήρων για τα αρχεία και τους φακέλους συμπεριλαμβάνοντας και ολόκληρη τη διαδρομή, π.χ. C:\folder1\folder2\...\foldern\filename.ext

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

Συμπτώματα που μας κάνουν να υποθέσουμε ότι σε κάποιο σημείο του συστήματος αρχείων έχει ήδη παραβιαστεί το προαναφερόμενο όριο:

- Δεν είναι δυνατή η είσοδος σε κάποιον φάκελο
- Δεν εμφανίζεται καθόλου μενού με δεξί κλικ σε κάποιο αρχείο, ή δεν εμφανίζονται όλες οι επιλογές που θα έπρεπε.
- Δεν γίνεται επικόλληση.
- Εμφανίζονται μη αναμενόμενα μηνύματα, όπως:
«Δεν είναι δυνατή η εύρεση του καθορισμένου αρχείου από το σύστημα»
«Δεν επιτρέπεται η πρόσβαση. Βεβαιωθείτε ότι ο δίσκος δεν είναι γεμάτος, ότι δεν έχει προστασία εγγραφής και ότι το αρχείο δεν χρησιμοποιείται αυτήν τη στιγμή»

Για την επίλυση ενός τέτοιου προβλήματος πρέπει να μικρύνει το όνομα του αντικειμένου ή να μετακινηθεί σε άλλη μικρότερη διαδρομή φακέλων.
Πηγή:
ΚΕ.ΠΛΗ.ΝΕ.Τ Ν.ΗΛΕΙΑΣ

Για τα Windows 7 δεν αναφέρεται τίποτα... Τουλάχιστον ακόμα.
Όπως φαίνεται κάποια βρεφικά προβλήματα, (DOS, Window3, Windows95, Windows98) δεν έχουν ξεπεραστεί ακόμα.
Τελευταία επεξεργασία από το μέλος DGeorge την 12 Σεπ 2011 16:04, έχει επεξεργασθεί 1 φορά συνολικά.

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από nbc » 19 Αύγ 2011 11:01

Τα αρχεία - σε επίπεδο API - ανοίγουν με την CreateFile. Η συνάρτηση αυτή (όπως και εκατοντάδες άλλες), υπάρχει σε 2 εκδόσεις: την ANSI (συμβατότητα με Windows 9X) και τη Unicode. H ANSI περιορίζεται με βάση τη σταθερά MAX_PATH η οποία έχει την τιμή 260. Μείον 1 χαρακτήρα που είναι το trailing 0 (έτσι αποθηκεύονται τα strings), μας μένουν 259 πραγματικοί χαρακτήρες ως ανώτατο μήκος path. Τα 255/256 που κατα καιρούς διαβάζουμε ουσιαστικά είναι περιορισμοί των εκάστοτε εφαρμογών και όχι των Windows.

Στη Unicode εκδοχή της, και με την προυπόθεση ότι ο προγραμματιστής χρησιμοποιήσει το ειδικό πρόθεμα "\\?\", τότε το όριο ανέρχεται στους 32767.
In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path.
Το θέμα είναι τι χρησιμοποιεί ο Explorer, τα Antivirus και κάθε εφαρμογή. Δεν ξέρω στα Vista/7 τι συμβαίνει, αλλά στα XP το είχα δοκιμάσει, και - όντως - ο Explorer δεν μπορούσε να διαχειριστεί paths μεγαλύτερα από 259 χαρακτήρες. Που σημαίνει πως θα μπορούσε κανείς να "κρύψει" αρχείο σε μεγαλύτερο path (πχ, ιό). Θα μπορούσε να το δει, αλλά όχι να το διαγράψει, κλπ.

Άβαταρ μέλους
hitca
Honorary Member
Δημοσιεύσεις: 1919
Εγγραφή: 13 Ιουν 2010 19:41
Τοποθεσία: Brussels
Επικοινωνία:

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από hitca » 19 Αύγ 2011 11:10

Πολύ σωστά, η σχετική αναφορά είναι εδώ στο msdn >> Naming Files, Paths, and Namespaces
«Μάθε από τα λάθη των άλλων γιατί δε θα προλάβεις να τα κάνεις όλα μόνος σου»
Οι Έλληνες είμαστε «θεατές των λόγων και ακροατές των έργων» (.... ο Θουκυδίδης το είπε !)
«Υπάρχουν τριών ειδών άνθρωποι. Αυτοί που κερδίζουν, αυτοί που χάνουν και αυτοί που καθορίζουν ποιοι κερδίζουν και ποιοι χάνουν! »

Άβαταρ μέλους
DGeorge
Honorary Member
Δημοσιεύσεις: 3753
Εγγραφή: 13 Σεπ 2007 12:59
Τοποθεσία: Καλλιθέα Γενικώς

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από DGeorge » 19 Αύγ 2011 11:44

Οι 259 χαρακτήρες που αναφέρεις για το path, είναι οι αντίστοιχοι 255.123 του filename, όπου 255 οι χαρακτήρες του ονόματος, .123 το επέκταμα (π.χ. .txt);
Το ρωτάω αυτό, καθώς με 255+1(η τελεία)+3(το επέκταμα)=259 χαρακτήρες πάλι :P
Βλέπεις, από προγαμματισμό, γνωρίζω ελάχιστα και παμπάλαια :(

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από nbc » 19 Αύγ 2011 16:24

:lol: καλή σκέψη, αλλά σύμπτωση!

Το path, εδώ, χρησιμοποιείται με την ευρεία έννοια. Μπορεί να αφορά αρχεία, φακέλους (και υποφακέλους), θύρες I/O, devices ακόμη και partitions. Όλα από την CreateFile περνάνε. Η επέκταση είναι άγνωστη οντότητα σε αυτό το επίπεδο.

Άλλωστε, το .3 αφορά το FAT και όχι το NTFS.

Άβαταρ μέλους
DGeorge
Honorary Member
Δημοσιεύσεις: 3753
Εγγραφή: 13 Σεπ 2007 12:59
Τοποθεσία: Καλλιθέα Γενικώς

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από DGeorge » 22 Αύγ 2011 10:50

Πολλή Καλημέρα και καλή Εβδομάδα :D :D
nbc έγραψε:...Άλλωστε, το .3 αφορά το FAT και όχι το NTFS.
Μέχρις εδώ όλα να τα δεχτώ! Θαυμάσια!
Τότε, δηλαδή, ο 'Συναγερμός-Προειδοποίηση' στη Παράθεση του ΚΕ.ΠΛΗ.ΝΕ.Τ Ν.ΗΛΕΙΑΣ, αναφερόταν μόνο στο Path;
Επίσης στην Παράθεση αυτή αναφέρονται τα λειτουργικά XP, και Vista, που μάλλον είναι NTFS... (Εκτός και αν μου διαφεύγει -πάλι- κάτι :P ! Είπαμε... Μαθαίνω :wink: )
Δηλαδή:
1) Αν δημιουργήσω ένα αρχείο EXCEL στον ROOT-Folder του δίσκου C: μου, μέχρι πόσους χαρακτήρες μπορώ -με ασφάλεια- να χρησιμοποιήσω στο όνομα αυτού του αρχείου;
Υπάρχει περίπτωση να μπορεί αυτό το αρχείο να το 'διαχειριστεί' (copy, cut, move κλπ) ο Explorer, και να μην μπορεί το EXCEL;
2) Είναι -τελικά- το μέγεθος στο όνομα αυτού του αρχείου, που περιορίζεται από το συνολικό μέγεθος (πλήθος χαρακτήρων) του Path;

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από nbc » 22 Αύγ 2011 15:40

Η ασφάλεια είναι σχετική με την εφαρμογή και το περιβάλλον της. Θεωρητικά μιλώντας, ακόμη και filenames του 1 χαρακτήρα είναι επισφαλή! Δεν ξέρω το Excel (ποιά έκδοση, να τρέχει που?) τι περιορισμούς έχει. Υποθέτω πως δεν θα σε αφήσει να σώσεις κάτι που το ίδιο δεν θα μπορεί να ξαναφορτώσει. Αυτό σημαίνει πως ίσως (αν φτάσεις στα όρια) να μην μπορείς να ανοίξεις το αρχείο με άλλη εφαρμογή (πχ OpenOffice) ή να το κάνεις backup σε άλλο filesystem (πχ από NTFS σε FAT32), ή να το μεταφέρεις μεταξύ Unicode και ANSI εκδόσεων (πχ από XP σε Windows 98).

Καταλαβαίνω γιατί υπάρχει σύγχιση μεταξύ path και filename, αλλά στην πράξη αυτά συνδέονται. Γι' αυτό και στο κείμενο που παρέθεσες αναφέρεται:
...255 χαρακτήρων για τα αρχεία και τους φακέλους συμπεριλαμβάνοντας και ολόκληρη τη διαδρομή...
Εγώ, με το πρώτο μου post, "διόρθωσα" το 255 σε σχέση με τη διαδρομή (δηλαδή το path). Άμα σε μπερδεύει ξέχασέ το, πες πως δεν το έγραψα ποτέ (μικρή σημασία έχει, άλλωστε). Θεώρησε πως τα πάντα είναι μέχρι 255 χαρακτήρες. Paths, filenames, extensions, και οι συνδυασμοί τους.

Δημιουργείς, όπως λες, στο root του δίσκου σου ένα αρχείο με 255 χαρακτήρες, εξαντλώντας όλα τα περιθώρια που σου δίνει το σύστημα. Ας πούμε πως η εφαρμογή σε αφήνει (πιθανότατα δεν..., αλλά τεχνικά είναι εφικτό να γίνει). Πάντως, με περισσότερους θα χτυπήσει καθώς δεν τους επιτρέπει το filesystem.

Πας, λοιπόν, και το μετακινείς με κάποιον τρόπο σε ένα directory, ας πούμε το "C:/myData". Η πλήρης διαδρομή του αρχείου είναι πλέον C:/myData/..255χαρακτήρες..., η οποία έχει μήκος 265 χαρακτήρες. Πλέον το αρχείο σου είναι υποκείμενο "ειδικών συνθηκών". Δεν θα μπορούν να το διαχειριστούν όλα τα προγράμματα (αυτά, δηλαδή, που θα μπορούσαν αν το μήκος ήταν εντός ορίων).

Άβαταρ μέλους
DGeorge
Honorary Member
Δημοσιεύσεις: 3753
Εγγραφή: 13 Σεπ 2007 12:59
Τοποθεσία: Καλλιθέα Γενικώς

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από DGeorge » 22 Αύγ 2011 16:14

DGeorge έγραψε:2) Είναι -τελικά- το μέγεθος στο όνομα αυτού του αρχείου, που περιορίζεται από το συνολικό μέγεθος (πλήθος χαρακτήρων) του Path;
nbc έγραψε:....Η πλήρης διαδρομή του αρχείου είναι πλέον C:/myData/..255χαρακτήρες..., η οποία έχει μήκος 265 χαρακτήρες. Πλέον το αρχείο σου είναι υποκείμενο "ειδικών συνθηκών". Δεν θα μπορούν να το διαχειριστούν όλα τα προγράμματα (αυτά, δηλαδή, που θα μπορούσαν αν το μήκος ήταν εντός ορίων).
Κάτι τέτοιο εννοούσα -μάλλον- και στο δικό μου (2), πράγμα που εσύ μου το διευκρίνισες για τα καλά.
Θέλω να σ'ευχαριστήσω πολύ για το ξεκαθάρισμα της ομίχλης μεταξύ μεγέθους Filename και μεγέθους Path.
Όπως επίσης δεν μπορώ να ξεχάσω και τον φίλτατο hitca για την παρέμβασή του.
Κύριοι σας ευχαριστώ πολύ, νά'στε καλά :pint: :pint:
Αφήνω το Θέμα ανοιχτό, για τον οποιονδήποτε θελήσει να προσθέσει το ο,τιδήποτε.

Άβαταρ μέλους
hitca
Honorary Member
Δημοσιεύσεις: 1919
Εγγραφή: 13 Ιουν 2010 19:41
Τοποθεσία: Brussels
Επικοινωνία:

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από hitca » 22 Αύγ 2011 17:20

Να συμπληρώσω ότι είναι (...σχετικά) συνηθισμένο φαινόμενο σε περίπτωση αποσυμπίεσης αρχείων με (πολύ) μεγάλα ονόματα αρχείων πχ. .rar
Τα windows (και κυρίως το winrar) απλώς αδυνατούν να τα διαχειριστούν και βγάζουν (πάντα) σχετικό μήνυμα. Η λύση είναι (τουλάχιστον αυτό κάνω εγώ) απλή μετονομασία των αρχείων στον ελάχιστο δυνατό αριθμό χαρακτήρων.
«Μάθε από τα λάθη των άλλων γιατί δε θα προλάβεις να τα κάνεις όλα μόνος σου»
Οι Έλληνες είμαστε «θεατές των λόγων και ακροατές των έργων» (.... ο Θουκυδίδης το είπε !)
«Υπάρχουν τριών ειδών άνθρωποι. Αυτοί που κερδίζουν, αυτοί που χάνουν και αυτοί που καθορίζουν ποιοι κερδίζουν και ποιοι χάνουν! »

Άβαταρ μέλους
Connor MacLeod
Honorary Member
Δημοσιεύσεις: 13372
Εγγραφή: 07 Φεβ 2005 13:36
Τοποθεσία: Κοζάνη
Επικοινωνία:

[Solved] Μύθος οι 255 χαρακτήρες ακόμα και στα VISTA;

Δημοσίευση από Connor MacLeod » 22 Αύγ 2011 18:09

[ψιλο- offtipic]

Επίσης και κάποια ονόματα σε folders δεν μπαινουν όπως τα:
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9

[/ψιλο- offtipic]
Meizu MX5(5.5"/8Core/3GB/32GB/Sony IMX220 20.7MP)
PC 27'' (3770@3.4/16GB/560SE/500GB SATA3/650W S12G)
Mac mini (2.5GHz/8GB/6630/90GB GorsairGT)

Απάντηση

Επιστροφή στο “Windows Software Guide”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες