विंडो 256 वर्ण पथ नाम सीमा


17

लंबे शोध के बाद, मुझे आखिरकार पता चला कि नवीनतम Microsoft Windows 7 में भी पाथनाम 256 वर्णों से अधिक लंबा नहीं हो सकता है। मुझे वास्तव में ऐसा नहीं लगता कि ऐसी मूर्खतापूर्ण सीमा क्यों है, क्योंकि NTFS ~ 32,000 वर्ण पथ को संभाल सकता है एक दर्जन से अधिक वर्षों से किसी भी समस्या के बिना लंबाई! क्या इसे बदलने की कोई संभावना नहीं है? या क्या इससे बचने के लिए कोई व्यावहारिक उपाय हैं?

260 अक्षर लंबे फ़ाइल नाम के साथ कुछ नेस्टेड फोटो निर्देशिका जैसे सरल उपयोग के मामलों के लिए बहुत कम हैं।


1
मुझे लगता है कि चिंता यह है कि पुराने कार्यक्रम हैं, जिनके बारे में एक कठिन विचार है कि एक रास्ता कितना लंबा होना चाहिए, ताकि यदि आप उन्हें लंबे रास्तों पर इस्तेमाल करने की कोशिश करें, तो वे दिलचस्प तरीकों से विस्फोट करेंगे।
dsolimano

क्या लिनक्स ओएस में यह समस्या है?
Ahorn

जवाबों:


18

Microsoft के अनुसार:

  • नवीनतम संस्करण के लिए विकसित किए गए अनुप्रयोगों के लिए भी पारंपरिक विंडोज एपीआई 260 नामों के लिए पथ नामों को सीमित करता है।

  • यूनिकोड-अवगत एपीआई का उपयोग करने वाले एप्लिकेशन पथ के एक रूप का उपयोग कर सकते हैं जो 32767 वर्णों तक की अनुमति देता है। फ़ाइल नाम के साथ उपसर्ग \\?\करना पड़ता है, और एक पूर्ण पथ होना चाहिए, जैसे, \\?\c:\dir\fileया \\?\UNC\server\share\file। आगे की सीमाएं हैं, विवरण के लिए संदर्भ देखें।

यदि आप एक गहरी फ़ाइल पदानुक्रम बनाने और उपयोग करने में सफल रहे हैं, तो फ़ाइल नाम की लंबाई के कारण बम से बाहर निकलने वाले एप्लिकेशन के साथ काम करने की आवश्यकता है, कुछ चीजें हैं जो आप आज़मा सकते हैं:

  • प्रतीकात्मक लिंकmklink बनाने के लिए कमांड का उपयोग करें , और एक पथ पास करें जो उन्हें आपके एप्लिकेशन में उपयोग करता है।

  • substकिसी निर्देशिका को ड्राइव अक्षर निर्दिष्ट करने के लिए कमांड का उपयोग करें ।

  • एक गहरी निर्देशिका से अपना आवेदन शुरू करें और इसे छोटे रिश्तेदार पथ से गुजारें।

  • उनके 8.3 उपनाम (द्वारा कुछ लंबी नामों को बदल micros~1,) मानते हुए उन अभी भी विंडोज 7 में मौजूद यदि आपके पास micros~1के साथ-साथ micros~2, मैं नहीं जानता कि यह बताने के लिए कि कैसे जो जो है, शायद DOS चलाएं command.com(फिर से, विंडोज 7 अभी भी ऐसा कर सकते हैं)।


3
वैसे, Win7 से विंडोज एक्सप्लोरर भी पारंपरिक एपीआई का उपयोग करने लगता है! वह अफसोस की बात है।

3
और भी अधिक backslashes `\\? \` :-)
अंगूठी

@ गिल्स, क्या माइक्रोस ~ 1 और माइक्रोस ~ 2 पूरे सिस्टम में मानकीकृत है या यह यादृच्छिक है?
पचेरियर

@Pacerier जो भी निर्देशिका पहले बनाई गई थी micros~1, इसलिए यह अनिवार्य रूप से यादृच्छिक है।
गिल्स एसओ- बुराई को रोकना '

0

आप अपने सभी फ़ोल्डरों और फ़ाइलों के लिए संक्षिप्त (8.3) नामों का उपयोग कर सकते हैं।

आपको यह सुनिश्चित करने की आवश्यकता है कि वे हालांकि सक्षम हैं।

एक लंबे फ़ाइल नाम को किसी भी फ़ाइल नाम से माना जाता है जो लघु MS-DOS (8.3 भी कहा जाता है) शैली नामकरण सम्मेलन से अधिक है। आमतौर पर, विंडोज डिस्क पर लंबे फ़ाइल नामों को विशेष निर्देशिका प्रविष्टियों के रूप में संग्रहीत करता है, जिन्हें विशेष फ़ाइल सिस्टम के आधार पर प्रदर्शन कारणों के लिए सिस्टमबद्ध अक्षम किया जा सकता है। जब आप एक लंबी फ़ाइल नाम बनाते हैं, तो विंडोज नाम का एक छोटा 8.3 रूप भी बना सकता है, जिसे 8.3 उपनाम कहा जाता है, और इसे डिस्क पर भी संग्रहीत करें। यह 8.3 अलियासिंग एक निर्दिष्ट मात्रा के लिए अक्षम किया जा सकता है।

(मेरे बोल्ड)

लंबे नाम से संक्षिप्त नाम प्राप्त करने के लिए आपको कुछ कोड भी लिखना होगा।

स्रोत


2
lol ... मैं विंडोज़ 95 में इन दिनों को अच्छी तरह से याद कर सकता हूँ, जब हम सभी को यह सुपर डुपर एफएटी 32 256 चर्टे लंबे फ़ाइलनाम के साथ मिला था! यह (इन दिनों) शानदार था और मैं वास्तव में हैरान हूं कि इन दिनों में फ़ाइल नाम की सीमाएं अभी भी एक मुद्दा हो सकती हैं । 2010! विंडोज वास्तव में पुरातन है ...

0

NTFS में फ़ाइल / निर्देशिका नाम 255 यूनिकोड कोडपॉइंट्स तक सीमित है, क्योंकि लंबाई बाइट के रूप में संग्रहीत है। लेकिन कुल पथ लंबाई की कोई अंतर्निहित सीमा नहीं है।

कई Win32 एपीआई कॉल (एक्सप्लोरर शेल सहित) कॉल में 260 - 1 लंबाई की सीमा होती है। कुछ अन्य कॉलों में 32K (थोड़ा कम होने के बाद से, कर्नेल-लैंड में वॉल्यूम नाम जुड़ जाता है) के लिए \\? \ Prefix का उपयोग करने की क्षमता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.