Τα Windows κρατούν ορισμένα ονόματα αρχείων και δεν σας επιτρέπουν να τα χρησιμοποιήσετε οπουδήποτε. Ξεχάστε να καλέσετε ένα αρχείο con.txt ή aux.mp3. Όλα αυτά οφείλονται σε μια επιλογή που έγινε το 1974 και στη δίψα της Microsoft για αιώνια συμβατότητα προς τα πίσω.



Ονόματα αρχείων που δεν μπορείτε να χρησιμοποιήσετε

Η Microsoft παρέχει μια επίσημη λίστα δεσμευμένων ονομάτων αρχείων και εδώ είναι:

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 και LPT9

Σημειώστε ότι δεν μπορείτε να χρησιμοποιήσετε αυτά τα ονόματα αρχείων με οποιαδήποτε επέκταση αρχείου. Επομένως, δεν μπορείτε να ονομάσετε ένα αρχείο con.txt, con.jpg ή con.doc. Και τα Windows δεν κάνουν διάκριση πεζών-κεφαλαίων, επομένως δεν έχει σημασία αν είναι CON, con ή CoN—τα Windows δεν σας επιτρέπουν να χρησιμοποιήσετε αυτό το όνομα.

Μπορείτε να το δοκιμάσετε μόνοι σας. Δοκιμάστε να αποθηκεύσετε ένα αρχείο ως con.txt ή lpt6.txt στο Σημειωματάριο. Ή δοκιμάστε να μετονομάσετε οποιοδήποτε αρχείο σε ένα από αυτά τα ονόματα στην Εξερεύνηση αρχείων. Τα Windows απλά δεν σας επιτρέπουν να το κάνετε.

Φυσικά, τα Windows περιορίζουν επίσης τα ονόματα αρχείων με άλλους τρόπους. Δεν μπορείτε επίσης να χρησιμοποιήσετε διάφορους ειδικούς χαρακτήρες όπως οι παρακάτω στα ονόματα. Συμβουλευτείτε τον επίσημο της Microsoft τεκμηρίωση Για περισσότερες πληροφορίες.

Τι συνέβη το 1974 και γιατί πρέπει να μας νοιάζει;

Οπως και @Foone πρόσφατα εξηγήθηκε στο Twitter, αυτό το θέμα χρονολογείται από το 1974. Στο UNIX , όλα είναι ένα αρχείο . (Το ίδιο ισχύει και σε λειτουργικά συστήματα που μοιάζουν με UNIX, όπως το Linux σήμερα.) Οι συσκευές υλικού αντιπροσωπεύονταν σε ειδικές διαδρομές όπως το /dev/lp0 για τον πρώτο εκτυπωτή και το /dev/tty για την κονσόλα.

Διαφήμιση

Το 1974, αυτή η ίδια ιδέα προστέθηκε στο λειτουργικό σύστημα CP/M. Δυστυχώς, το CP/M σχεδιάστηκε για υπολογιστές με πολύ λίγη μνήμη και χωρίς σκληρούς δίσκους. Χρησιμοποιούσε πολλούς δίσκους και όχι καταλόγους, έτσι αυτά τα ειδικά αρχεία που αντιπροσώπευαν συσκευές εμφανίζονταν αποτελεσματικά παντού, σε κάθε δίσκο.

Έτσι, όταν αποθηκεύατε ένα αρχείο κειμένου, θα μπορούσατε να πείτε στον επεξεργαστή κειμένου σας να το αποθηκεύσει στη συσκευή του εκτυπωτή, η οποία θα το εκτύπωνε. Αλλά οι επεξεργαστές κειμένου και άλλα προγράμματα, όπως η προσθήκη επεκτάσεων αρχείων όπως το .txt, έτσι το CP/M απλώς αγνόησε την επέκταση αρχείου για αυτά τα αρχεία συσκευής. Με άλλα λόγια, εάν ένας επεξεργαστής κειμένου προσπαθήσει να αποθηκεύσει ένα αρχείο στο όνομα της συσκευής του εκτυπωτή ακολουθούμενο από .txt, το CP/M απλώς υπέθεσε ότι αναφερόταν στη συσκευή του εκτυπωτή και αγνόησε την επέκταση αρχείου. Τώρα το χαρακτηριστικό λειτούργησε σωστά σε κάθε εφαρμογή—υπέροχο!

Σίγουρα, είναι ένα βρώμικο hack, αλλά ποιος νοιάζεται; Λοιπόν, το CP/M έπιασε. Τελικά, εμφανίστηκε το PC-DOS και διατήρησε αυτό το χρήσιμο χαρακτηριστικό CP/M. Το PC-DOS 2.0 πρόσθεσε καταλόγους το 1983, αλλά η Microsoft επέλεξε να εμφανίζονται αυτά τα αρχεία συσκευών σε όλους τους καταλόγους για συμβατότητα με το υπάρχον λογισμικό DOS αντί να τα τοποθετήσει σε έναν ειδικό φάκελο συσκευών.

Τελικά, εμφανίστηκαν τα Windows 95 και χτίστηκαν πάνω από το DOS. Τα Windows NT δεν βασίζονταν στην κορυφή του DOS, αλλά ήθελαν να είναι συμβατά με τις εφαρμογές των Windows 95. Τα Windows 10 εξακολουθούν να βασίζονται στα Windows NT και λειτουργούν με τον ίδιο τρόπο. Το ίδιο ισχύει φυσικά και στα Windows 7.

Τώρα, έχουν περάσει πάνω από σαράντα χρόνια και ακόμα δεν μπορούμε να ονομάσουμε αρχεία con.txt ή aux.mp3 επειδή τα Windows θέλουν να παραμείνουν συμβατά με αρχαία προγράμματα που ενδέχεται να χρησιμοποιούν αυτήν τη δυνατότητα. Είναι ένα καλό παράδειγμα του πόσο έντονα δεσμεύεται η Microsoft για συμβατότητα προς τα πίσω.

Εκσυγχρονίζω: Μας είπαν ότι το CP/M αρχικά απαιτούσε μια τελευταία άνω και κάτω τελεία—με άλλα λόγια, αντί για CON, έπρεπε να πληκτρολογήσετε CON:. Προφανώς, το πρόβλημα μπορεί να ξεκίνησε πραγματικά το 1981 με την κυκλοφορία των MS-DOS και PC-DOS, τα οποία αφαίρεσαν την απαίτηση άνω και κάτω τελείας. Στο DOS, θα μπορούσατε να χρησιμοποιήσετε το CON αντί για το CON:. Άρα ίσως το DOS να φταίει περισσότερο για αυτό παρά το CP/M.
ΔΙΑΒΑΣΤΕ ΤΗ ΣΥΝΕΧΕΙΑ