Nếu bạn có khả năng chia sẻ các tệp của mình với các tổ chức khác sử dụng các hệ điều hành khác nhau, bạn cần nghiên cứu những gì hoạt động tốt nhất trên tất cả các tùy chọn chính - ví dụ: Windows, MacOS và các hương vị khác nhau của Unix. "Nếu nó hoạt động trên Windows 10, điều đó không sao vì đó là hệ thống duy nhất chúng tôi sử dụng" có lẽ đang đào một cái lỗ để rơi vào tương lai!
Không gian trong tên tệp thường gây ra tình trạng tăng nặng vô nghĩa, khi một hệ thống chỉ lấy "từ" đầu tiên của tên làm tên đầy đủ và đầu tiên phàn nàn rằng tệp không tồn tại, và sau đó phàn nàn rằng nó không thể hiểu điều gì xảy ra sau nó . Bạn có thể làm việc đó bằng cách đặt toàn bộ tên trong dấu ngoặc kép, nhưng tại sao lại khiến mọi người làm điều đó? Nếu bạn không thích RelazedDrawings, hãy sử dụng Relazed-Drawings hoặc Relazed_Drawings thay thế.
Có các ký tự không hợp lệ khác - bản thể rõ ràng nhất / là dấu phân cách giữa các bộ phận của tên tệp (ví dụ: thư mục và thư mục) và tương đương \ trên Windows. Các ký tự khác là dấu ngoặc kép, "& gt;", "& lt;", "?", "*", V.v. Những ký tự này có ý nghĩa đặc biệt về hướng dẫn dòng lệnh trong hầu hết các hệ điều hành.
Một số hệ điều hành có tên tệp phân biệt chữ hoa chữ thường (Phát hành và rút tiền là các tệp khác nhau!) Nhưng các tệp khác thì không. Windows là một sự thỏa hiệp.
Một số hệ thống có tên tệp "dành riêng" - ví dụ COM và NUL trên Windows.
Có thể có giới hạn về tổng chiều dài của tên tệp (bao gồm tất cả các tên thư mục đi trước nó).
Một tài liệu tham khảo của Microsoft (rõ ràng là dành riêng cho Windows) là https://support.in eb39e07630fa
Bạn có thể làm điều tồi tệ hơn là gắn bó với đặc tả POSIX cho "tên tệp di động hoàn toàn" chỉ cho phép các ký tự A-Z, a-z, 0-9, "_", "-" và "." ("-" không được là Đầu tiên ký tự của tên) và độ dài tối đa 14 ký tự hoặc ISO 9660 (được sử dụng trên CD và các thiết bị tương tự) không phân biệt chữ hoa chữ thường và chỉ cho phép A-Z, 0-9, "_" và "." với độ dài tối đa khoảng 180 ký tự.