Có một số ký tự bị hạn chế (và thậm chí cả tên tệp đầy đủ, trong Windows), đối với tên tệp và thư mục. Điều này other question bao gồm chúng rồi.Làm cách nào để truy xuất các ký tự bị cấm đối với tên tệp, trong Java?
Có cách nào, trong Java, để truy xuất danh sách các ký tự bị cấm này, tùy thuộc vào hệ thống (giống như truy xuất các ký tự ngắt dòng)? Hay tôi chỉ có thể tự mình đặt danh sách, kiểm tra hệ thống?
Edit: Nhiều cơ bản về tình hình cụ thể của tôi, ngoài những câu hỏi chung.
Tôi sử dụng tên mặc định, đến từ một số dữ liệu (không kiểm soát thực sự nội dung của chúng) và tên này được gán cho JFileChooser làm tên tệp mặc định để sử dụng (với setSelectedFile()
). Tuy nhiên, điều này cắt bớt bất cứ điều gì trước khi nhân vật không hợp lệ cuối cùng.
Những tên mặc định này đôi khi kết thúc bằng ngày ở định dạng "mm/dd/yy", chỉ để lại "yy", trong tên mặc định, vì "/" bị cấm. Như vậy, việc kiểm tra các ngoại lệ không thực sự là một tùy chọn ở đó, bởi vì bản thân tệp đó thậm chí không được tạo ra.
Chỉnh sửa bis: Hmm, điều đó khiến tôi nghĩ, nếu JFileChooser cắt bớt tên, nó có thể có quyền truy cập vào danh sách các ký tự như vậy, có thể thú vị để kiểm tra thêm.
Chỉnh sửa ter: Ok, kiểm tra nguồn từ JFileChooser hiển thị điều gì đó hoàn toàn đơn giản. Đối với trường văn bản, nó sử dụng file.getName(). Nó không thực sự kiểm tra các ký tự không hợp lệ, nó chỉ đơn giản là nó lấy "/" làm dấu tách đường dẫn và chỉ giữ phần cuối, "tên tệp thực". Các nhân vật bị cấm khác thực sự trải qua.
Xác định "ký tự đặc biệt". –
+1 cho danh sách trắng –
+1 Trên hầu hết các hệ thống tệp UNIX-y, các ký tự bị cấm chỉ là '/' và ký tự nul '\ 0'. –