आप फ़ाइल नाम में विशेष वर्णों का उपयोग क्यों नहीं कर सकते, जैसे "?" या "?"


17

जब मैं किसी फ़ाइल को सहेजने का प्रयास करता हूं, अगर मैं विंडोज में नाम (जैसे कि एक कॉलन, प्रश्न चिह्न, या विस्मयादिबोधक बिंदु) में विशेष वर्णों का उपयोग करता हूं, तो मुझे एक संदेश मिलता है जिसमें कहा गया है कि फ़ाइल का नाम अमान्य है।

ऐसा क्यों है?



आप किस प्रोग्राम में फ़ाइल सहेजने का प्रयास कर रहे हैं, और फ़ाइल नाम में या (जैसा लगता है) फ़ाइल नाम में अपमानजनक चरित्र है?
जुक्का के। कोर्पेला


जवाबों:


22

ऐसे कई वर्ण हैं जिनका विंडोज़ से विशेष अर्थ है (और डॉस में, जहाँ मूल रूप से अधिकांश वर्ण आते हैं)

से MSDN :

फ़ाइल नाम में निम्न में से कोई भी वर्ण नहीं हो सकता:
\ /: *? “<> |

/एक स्विच है (और एक निर्देशिका विभाजक भी है)।
\एक निर्देशिका विभाजक है।
:एक ड्राइव डिज़ाइनर है।
*और ?खोज में प्रयुक्त वाइल्डकार्ड हैं।
"मापदंडों में रिक्त स्थान की अनुमति देने का एक तरीका है।
<और >पुनर्निर्देशन हैं जो किसी प्रोग्राम के इनपुट और आउटपुट को आने और स्क्रीन / कीबोर्ड के अलावा किसी अन्य चीज़ से आने और जाने की अनुमति देते हैं।
|एक पाइप है जो एक प्रोग्राम से आउटपुट को अगले इनपुट के रूप में उपयोग करने की अनुमति देता है।


1
इस उत्तर को स्पष्ट करने के लिए, ये विशेष वर्ण एक कमांड लाइन (या पथ) को पार्स करने में हस्तक्षेप कर सकते हैं यदि वे एक फ़ाइल नाम में थे। किसी भी तरह से फ़ाइलनाम को परिसीमित करने की आवश्यकता नहीं है (जैसे इसे उद्धरण या रिक्त स्थान के साथ घेरें), इसलिए इस तरह के एक विशेष चार का सामना करने से गलत पार्सिंग होगा (यानी फ़ाइल नाम या ऑपरेटर का विशेष चार भाग?)।
चूरा

1
हालांकि, यह तर्कपूर्ण है कि इनमें से कुछ प्रतिबंध लंबे फ़ाइल नाम और उद्धरण चिह्नों की हैंडलिंग के कारण आवश्यक नहीं हैं। \ ? *और "वर्तमान सिंटैक्स में केवल वही आवश्यक हैं, क्योंकि अन्य वर्ण केवल उद्धरण चिह्नों के बाहर उपयोगी हैं। अपवाद है: जो केवल दूसरे चरित्र के रूप में उपयोगी है, जिसे कहीं और अनुमति देते समय इसे गैरकानूनी घोषित किया जा सकता है। दूसरे शब्दों में, कोई फ़ाइल नाम नहीं है A:A letter's story.txt, लेकिन नाम की फ़ाइल के साथ कोई समस्या नहीं हैSarah: My favorite cat.txt
त्रिकोणीय

<>"आरक्षित वाइल्डकार्ड वर्ण हैं। विंडोज़ *?.देशी NT में अनुवाद करते समय DOS के लिए जटिल शब्दार्थ को लागू करने के लिए उनका उपयोग करता है, जिसके लिए सरल शब्दार्थ है *?.। छह वाइल्डकार्ड वर्ण आरक्षित हैं, क्योंकि विंडोज वाइल्डकार्ड फाइल सिस्टम में ही मेल खाता है, यानी सीधे NtQueryDirectoryFileसिस्टम कॉल में, जिसमें कोई सटीक तंत्र नहीं है। यूनिक्स में, वाइल्डकार्ड को आवेदन स्तर पर लागू किया जाता है, आमतौर पर एक शेल द्वारा जो उन्हें भागने का समर्थन करता है।
इरीक सन सिप

ध्यान दें कि :आमतौर पर फ़ाइलनाम में आरक्षित होता है, लेकिन फ़ाइल पथों में नहीं। इसका उपयोग डिवाइस नामों और फ़ाइल धाराओं के लिए सीमांकक के रूप में किया जाता है (उदाहरण के लिए "फ़ाइल नाम: स्ट्रीमनाम: स्ट्रीमटाइप")। इसके अलावा, कुछ फ़ाइल सिस्टम जैसे कि VirtualBox साझा-फ़ोल्डर फ़ाइल सिस्टम की अनुमति देता है :, |और फ़ाइल नाम में ASCII नियंत्रण वर्ण (1-31), लेकिन वे नामित-पाइप फ़ाइल सिस्टम को छोड़कर Microsoft के सभी फ़ाइल सिस्टम में आरक्षित हैं।
इरीक सन सेप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.