2009-10-02 2 views
5

में वैध फ़ाइल नाम बनाना मैं कंपनी नाम और forename/उपनाम जैसे गतिशील मानों के आधार पर फ़ाइल नाम बना रहा हूं।जावा

मैं फिर यह सत्यापित करना चाहता हूं कि फाइल बनाने का प्रयास करने से पहले फ़ाइल नाम मान्य है। यह जांच है कि इसमें कोई अवैध पात्र नहीं है, और यदि वे करते हैं तो उन्हें प्रतिस्थापित करें।

मैं निश्चित रूप से केवल एक नियमित अभिव्यक्ति का उपयोग कर सकता था, लेकिन यह सोच रहा था कि क्या कॉमन्स-लैंग या कॉमन्स-आईओ जैसे कुछ ऐसा तरीका है जो ऐसा करता है?

उत्तर

5

जावा 7 के साथ, नई विधि java.nio.file.Paths.get(String path)InvalidPathException फेंक देगी यदि पथ में विशिष्ट फ़ाइल सिस्टम के लिए अवैध वर्ण हैं, लेकिन जावा 6 या इससे पहले में, वहां है दुर्भाग्य से ऐसा कोई काम नहीं है।

चूंकि फ़ाइल नाम की लंबाई और लंबाई की अनुमति देने वाले वर्ण अत्यधिक प्लेटफ़ॉर्म (या यहां तक ​​कि फ़ाइल सिस्टम) निर्भर हैं, तो फ़ाइल बनाने की कोशिश करने और यह विफल होने पर देखने के लिए आपके पास कोई बेहतर विकल्प नहीं हो सकता है। जावा 6 में, एक अवैध पथ के साथ एक फ़ाइलऑटपुटस्ट्रीम बनाने से एक बल्कि अनिश्चित फ़ाइलNotFoundException फेंक देगा।

3

ठीक है, आपको इसे एक कानूनी फ़ाइल नाम है, क्योंकि इसमें कोई पथ हो सकता है, जिस स्थिति में कोई उपयोगकर्ता आपूर्ति कर सकता है ../../../../../। ./../../etc/passwd आदि