विंडोज एक्सप्लोरर - क्यों @ चरित्र में कभी-कभी फ़ाइल नाम में अनुमति नहीं है?


6

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

उदाहरण के लिए नाम के अंत में बिंदी लगाने से यह गायब हो जाएगा।

एक्सप्लोरर में स्वयं अधिक प्रतिबंध हैं, उदाहरण के लिए फ़ाइल नाम की शुरुआत में एक डॉट को लगाना बहुत कठिन है।

ठीक है, लेकिन साइन-इन में क्या गड़बड़ है @!?
मैंने इसके बारे में कहीं भी कोई प्रतिबंध नहीं देखा, और न ही मैं अब इसे पा सकता हूं।

देख:

1) विंडोज एक्सप्लोरर खोलें और नाम 1,1
2 के साथ एक फ़ाइल या फ़ोल्डर बनाएं ) F2 दबाएं और इसे @1,1
3 नाम दें ) देखें? नया नाम रद्द कर दिया गया।

मेरा सवाल है: क्यों?

मैंने XP, Win7 और Win10 पर इस "फीचर" का परीक्षण किया।
WinXP में अजीब बात यह है कि नाम बदलने है 0,0करने के लिए @0,0वास्तव में करने के लिए यह नाम बदलता है @0

ऐसा लगता है कि यह आंतरिक एक्सप्लोरर व्यवहार है, क्योंकि सीएमडी कंसोल में यह करने के लिए पूरी तरह से ठीक है cd.>"@1,1"


मैंने सिर्फ विंडोज 7 पर यह कोशिश की, और मैं आपके परिणाम को पुन: पेश नहीं कर सकता हूं - मैं एक्सप्लोरर के साथ, किसी @भी समस्या के साथ , एक फ़ाइल का नाम बदल सकता हूं , जिसमें कोई समस्या नहीं है।
स्कॉट

@ सच में, यह किसी भी तरह अल्पविराम ,से संबंधित है, खासकर अगर इसके बाद कोई अंक हो। @पहला चरित्र होना चाहिए। क्या आपने मेरा विशिष्ट उदाहरण आज़माया? हम्म यह लोकेल-डिपेंडेंट भी हो सकता है ... मेरे पास रूसी लोकेल है जहां ,वास्तविक संख्याओं के लिए विभाजक है (1,5 का मतलब 1 और डेढ़ है, अंग्रेजी लोकेल में 1.5 नहीं है)।

मैंने अब किया। मैंने पीएनजी फ़ाइल ली और उसका नाम बदलकर @0,0.pngसिर्फ सादा कर दिया @0,0। मुझे एक्सटेंशन बदलने के बारे में चेतावनी मिली, लेकिन जब मैंने ओके मारा, तो नाम बदलकर काम किया। (मैं यूएसए में हूं।)
स्कॉट

@ सही, ठीक है, मैं ऐसा नहीं बना सकता @1,1.pngकि लोकेल संबंधित है। क्या आपने कोशिश की @1,1(क्योंकि @ 0,0 केवल XP के लिए छोटी गाड़ी है, Win7 में और बाद में इसका नाम ठीक है), या शायद आप कोशिश करेंगे @1.1? यकीन नहीं है कि यह दिखाएगा, हालांकि।

1
आह, अब मुझे अजीब परिणाम मिल रहे हैं। 42 सेकंड के परीक्षण के आधार पर, यह @1,1चुपचाप विफल (नाम अपरिवर्तित छोड़कर) नाम बदलने के प्रयासों की तरह दिखता है ।
स्कॉट

जवाबों:


8

मुझे नहीं पता कि एक्सप्लोरर ऐसे नामों को क्यों मना करता है, लेकिन यह एक स्थानीयकरण सुविधा के साथ करने की संभावना है।

एक्सप्लोरर के विभिन्न भाग @<DllName>,<ResourceID>गतिशील रूप से स्थानीयकृत पाठ को लोड करने के लिए वाक्यविन्यास का उपयोग करते हैं - रजिस्ट्री स्ट्रिंग पुनर्निर्देशन देखें । (ध्यान दें कि संसाधन आईडी हमेशा एक दशमलव संख्या होती है, अक्सर ऋणात्मक।)

  • उदाहरण के लिए, रजिस्ट्री में .lnk शॉर्टकट के लिए विवरण है @shell32.dll,-4153, जिसका अर्थ है "फ़ाइल शेल 32.dll से आईडी -4153 के साथ लोड स्ट्रिंग"। चूंकि DLL फ़ाइलों में प्रत्येक समर्थित भाषा के लिए एक अलग संसाधन तालिका हो सकती है, जिसके परिणामस्वरूप वर्णन जो भी प्रदर्शन भाषा Windows के लिए सेट है, का अनुवाद किया जाएगा।

  • इसी तरह, आपका डेस्कटॉप; दस्तावेज़; चित्रों; ... निर्देशिकाओं में एक छिपी हुई desktop.iniफ़ाइल होती है:

    [.ShellClassInfo]
    LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21769
    IconResource=%SystemRoot%\system32\imageres.dll,-183
    

    जब एक्सप्लोरर इस फाइल को देखता है, तो यह फ़ोल्डर को "डेस्कटॉप" के रूप में नहीं दिखाएगा - यह अनुवादित नाम दिखाएगा।

बस एक वास्तविक फ़ाइल / निर्देशिका नाम में पुनर्निर्देशन वाक्यविन्यास का उपयोग करने से कुछ नहीं होगा, लेकिन मेरा अनुमान है कि किसी कार्यक्रम में "वास्तविक" और "प्रदर्शन" नामों को किसी तरह से मिलाने के मामले में विभिन्न बग को रोकने के लिए मना किया गया था। (उदाहरण के लिए, यदि आप एक निर्देशिका का नाम देते हैं, तो @shell32.dll,-21769यह संभव है कि एक छोटी गाड़ी कार्यक्रम Desktopइसके बजाय एक्सेस करने का प्रयास करता रहेगा । यह अतिरिक्त समस्याएं भी पैदा कर सकता है।)

तो यह विभिन्न अन्य नामों के समान होगा जो विंडोज अनुमति देता है, लेकिन एक्सप्लोरर नहीं करता है (जैसे .fooकि यूनिक्स के लिए एक नियमित "छिपी हुई फाइल" है, लेकिन कुछ विंडोज प्रोग्रामों द्वारा गलत (एक्सटेंशन-ओनली) फाइल के लिए गलत किया जा सकता है।


3
हे भगवान, वास्तव में! मैंने ऐसा क्यों नहीं सोचा। अरे, अब मैं वास्तव में नाम बदलने की कोशिश की test निर्देशिका के लिए @shell32.dll,-21769WinXP Explorer में, और यह जादुई यह दृश्य का नाम "का नाम बदलकर" Рабочий стол( "डेस्कटॉप" में रूसी) जिसमें desktop.iniसाथ LocalizedResourceName=@shell32.dll,-21769लाइन। जब मैंने एक फ़ाइल का नाम बदलने की कोशिश की test- एक्सप्लोरर ने Desktop.ini को यहीं [LocalizedFileNames]और के साथ बनाया test=@shell32.dll,-21769। (इसके अलावा, वह "स्थानीय नाम" सामान अपने आप में एक नौसिखिया उपयोगकर्ता के लिए भ्रामक हो सकता है, और संभवतः मैलवेयर द्वारा उपयोग किया जा सकता है)।
एलेक्सीस्किलम

आपके संपादन और स्पष्ट करने के लिए धन्यवाद। इसलिए, मुझे लगता है, मैं _@_इसके बजाय फ़ाइल उपसर्ग या मेरे पुराने का उपयोग करूंगा @_। वास्तव में, डाउनलोड की गई वीडियो फ़ाइलों के लिए यह मेरी नामकरण योजना थी: कभी-कभी मैं वीडियो की एक बैकअप प्रतिलिपि बनाता हूं, ताकि मैं अंतरिक्ष को बचाने के लिए इसे सुरक्षित रूप से हटा सकूं; लेकिन अक्सर मैं इसे तुरंत नहीं हटाना चाहता क्योंकि मैंने इसे अभी तक नहीं देखा था। इसलिए, मैं फ़ाइल नाम में @_ उपसर्ग लगाता था, इसलिए मैं आसानी से बैकअप किए गए लोगों को अलग कर सकता था। हाल ही में मुझे एक फ़ाइल मिली, जिसका नाम "वीडियो (1,5 Gb) .mp4" जैसे आकार में था - फिर मेरी योजना विफल रही @_ Video (1,5 Gb).mp4
एलेकसुक्लीम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.