फ़ाइल और निर्देशिका नामों के लिए कुछ प्रतिबंधित वर्ण (और यहां तक कि पूर्ण फ़ाइल नाम, विंडोज़) हैं। यह other question पहले से ही उन्हें कवर करता है।जावा में फ़ाइल नामों के लिए वर्जित वर्णों को कैसे पुनर्प्राप्त करें?
क्या जावा में, वर्जित वर्णों की इस सूची को पुनर्प्राप्त करने का कोई तरीका है, जो सिस्टम (लाइन ब्रेकर वर्णों को पुनः प्राप्त करने की तरह थोड़ा) पर निर्भर करेगा? या क्या मैं केवल सिस्टम को जांच कर, सूची की जांच कर सकता हूं?
संपादित करें: मेरी विशेष स्थिति के बारे में अधिक पृष्ठभूमि, एक तरफ सामान्य प्रश्न से।
मैं कुछ डेटा (उनके सामग्री पर कोई वास्तविक नियंत्रण नहीं) से आ रहा है, और यह नाम एक डिफ़ॉल्ट फ़ाइल नाम के रूप में उपयोग करने के लिए एक डिफ़ॉल्ट नाम का उपयोग करता है (setSelectedFile()
के साथ)। हालांकि, यह अंतिम अमान्य चरित्र से पहले कुछ भी छीनता है।
ये डिफ़ॉल्ट नाम कभी-कभी "मिमी/डीडी/वाई" प्रारूप में तिथियों के साथ समाप्त होते हैं, जो डिफ़ॉल्ट नाम में केवल "yy" छोड़ देता है, क्योंकि "/" वर्जित है। इस प्रकार, अपवादों की जांच करना वास्तव में एक विकल्प नहीं है, क्योंकि फ़ाइल स्वयं भी अभी तक नहीं बनाई गई है।
संपादित करें बिस: हम्म, बनाता है कि मुझे लगता है, अगर JFileChooser नाम को छोटा किया जाता है, यह शायद इस तरह के पात्रों की एक सूची तक पहुँच गया है, दिलचस्प है कि आगे की जांच करने के लिए किया जा सकता है।
संपादित करें ter: ठीक है, JFileChooser से स्रोतों की जांच करना पूरी तरह से सरल दिखाता है। टेक्स्ट फ़ील्ड के लिए, यह file.getName() का उपयोग करता है। यह वास्तव में अमान्य वर्णों की जांच नहीं करता है, यह बस इतना है कि यह पथ विभाजक के रूप में "/" लेता है, और केवल अंत, "वास्तविक फ़ाइल नाम" रखता है। अन्य वर्जित पात्र वास्तव में गुजरते हैं।
"विशेष चरित्र" को परिभाषित करें। श्वेतसूची –
+1 अधिकांश यूनिक्स-वाई फ़ाइल सिस्टम पर केवल प्रतिबंधित वर्ण '/' और नल-वर्ण '\ 0' हैं। –
+1 के लिए –