जब मैं किसी फ़ाइल को सहेजने का प्रयास करता हूं, अगर मैं विंडोज में नाम (जैसे कि एक कॉलन, प्रश्न चिह्न, या विस्मयादिबोधक बिंदु) में विशेष वर्णों का उपयोग करता हूं, तो मुझे एक संदेश मिलता है जिसमें कहा गया है कि फ़ाइल का नाम अमान्य है।
ऐसा क्यों है?
जब मैं किसी फ़ाइल को सहेजने का प्रयास करता हूं, अगर मैं विंडोज में नाम (जैसे कि एक कॉलन, प्रश्न चिह्न, या विस्मयादिबोधक बिंदु) में विशेष वर्णों का उपयोग करता हूं, तो मुझे एक संदेश मिलता है जिसमें कहा गया है कि फ़ाइल का नाम अमान्य है।
ऐसा क्यों है?
जवाबों:
ऐसे कई वर्ण हैं जिनका विंडोज़ से विशेष अर्थ है (और डॉस में, जहाँ मूल रूप से अधिकांश वर्ण आते हैं)
से MSDN :
फ़ाइल नाम में निम्न में से कोई भी वर्ण नहीं हो सकता:
\ /: *? “<> |
/
एक स्विच है (और एक निर्देशिका विभाजक भी है)।
\
एक निर्देशिका विभाजक है।
:
एक ड्राइव डिज़ाइनर है।
*
और ?
खोज में प्रयुक्त वाइल्डकार्ड हैं।
"
मापदंडों में रिक्त स्थान की अनुमति देने का एक तरीका है।
<
और >
पुनर्निर्देशन हैं जो किसी प्रोग्राम के इनपुट और आउटपुट को आने और स्क्रीन / कीबोर्ड के अलावा किसी अन्य चीज़ से आने और जाने की अनुमति देते हैं।
|
एक पाइप है जो एक प्रोग्राम से आउटपुट को अगले इनपुट के रूप में उपयोग करने की अनुमति देता है।
\
?
*
और "
वर्तमान सिंटैक्स में केवल वही आवश्यक हैं, क्योंकि अन्य वर्ण केवल उद्धरण चिह्नों के बाहर उपयोगी हैं। अपवाद है: जो केवल दूसरे चरित्र के रूप में उपयोगी है, जिसे कहीं और अनुमति देते समय इसे गैरकानूनी घोषित किया जा सकता है। दूसरे शब्दों में, कोई फ़ाइल नाम नहीं है A:A letter's story.txt
, लेकिन नाम की फ़ाइल के साथ कोई समस्या नहीं हैSarah: My favorite cat.txt
<>"
आरक्षित वाइल्डकार्ड वर्ण हैं। विंडोज़ *?.
देशी NT में अनुवाद करते समय DOS के लिए जटिल शब्दार्थ को लागू करने के लिए उनका उपयोग करता है, जिसके लिए सरल शब्दार्थ है *?.
। छह वाइल्डकार्ड वर्ण आरक्षित हैं, क्योंकि विंडोज वाइल्डकार्ड फाइल सिस्टम में ही मेल खाता है, यानी सीधे NtQueryDirectoryFile
सिस्टम कॉल में, जिसमें कोई सटीक तंत्र नहीं है। यूनिक्स में, वाइल्डकार्ड को आवेदन स्तर पर लागू किया जाता है, आमतौर पर एक शेल द्वारा जो उन्हें भागने का समर्थन करता है।
:
आमतौर पर फ़ाइलनाम में आरक्षित होता है, लेकिन फ़ाइल पथों में नहीं। इसका उपयोग डिवाइस नामों और फ़ाइल धाराओं के लिए सीमांकक के रूप में किया जाता है (उदाहरण के लिए "फ़ाइल नाम: स्ट्रीमनाम: स्ट्रीमटाइप")। इसके अलावा, कुछ फ़ाइल सिस्टम जैसे कि VirtualBox साझा-फ़ोल्डर फ़ाइल सिस्टम की अनुमति देता है :
, |
और फ़ाइल नाम में ASCII नियंत्रण वर्ण (1-31), लेकिन वे नामित-पाइप फ़ाइल सिस्टम को छोड़कर Microsoft के सभी फ़ाइल सिस्टम में आरक्षित हैं।