सबसे लंबी फ़ाइल पथ क्या है जिसे विंडोज हैंडल कर सकता है?


57

सबसे लंबी फ़ाइल पथ क्या है जिसे विंडोज हैंडल कर सकता है?

जवाबों:


48

अधिकतम पथ लंबाई (MSDN से)

विंडोज एपीआई में (निम्नलिखित पैराग्राफ में चर्चा किए गए कुछ अपवादों के साथ), एक पथ के लिए अधिकतम लंबाई MAX_PATH है, जिसे 260 वर्णों के रूप में परिभाषित किया गया है । एक स्थानीय पथ को निम्न क्रम में संरचित किया गया है: ड्राइव लेटर, कोलन, बैकस्लैश, बैकस्लैश द्वारा अलग किए गए घटक और एक समाप्ति नल वर्ण। उदाहरण के लिए, ड्राइव D पर अधिकतम पथ "D: \ <कुछ 256 वर्ण पथ स्ट्रिंग> <NUL>" है जहां "" <NUL> "वर्तमान सिस्टम कोडपेज के लिए अदृश्य समाप्ति शून्य वर्ण का प्रतिनिधित्व करता है। (वर्ण <> यहां दृश्य स्पष्टता के लिए उपयोग किए जाते हैं और मान्य पथ स्ट्रिंग का हिस्सा नहीं हो सकते।)


4
आपको यह उल्लेख करना चाहिए कि आप उन रास्तों को संभाल सकते हैं जो कि इस सीमा को `\\ 'के साथ उपसर्ग करते हैं। (मुझे लगता है कि यह उस चरित्र था)।
जॉय

3
आपको दूसरे पैराग्राफ में उल्लिखित यूनिकोड-पाथ की सीमा भी बताई जानी चाहिए: ~ 32k
akira

260? 256 वर्ण अनदेखी ड्राइव: \ और टर्मिनेटर। यह 2009 का है, हम केवल पात्रों के बाइट को ही क्यों खेलते हैं?
फ़ॉसी

@ घोषी लंबे रास्तों का उपयोग करने के लिए एपीआई का उपयोग ओएस द्वारा डिफ़ॉल्ट रूप से नहीं किया जाता है, क्योंकि उन अनुप्रयोगों के लिए मनमाने ढंग से लंबे तार गुजरते हैं जो डेवलपर्स द्वारा खराब तरीके से लिखे गए थे जो जानते थे कि मार्ग 260 वर्णों से अधिक लंबा नहीं हो सकता है और एक निश्चित लंबाई आवंटित करने का फैसला किया है इसे रखने के लिए सरणी में बड़ी संख्या में बफर ओवरफ्लो होंगे, जिससे दुर्घटनाग्रस्त होने और / या शोषित होने वाले अनुप्रयोगों का सामना करना पड़ेगा। एक ही गलत ज्ञान के साथ देवों द्वारा थोड़ा बेहतर कार्यान्वयन समाप्त हो जाएगा क्योंकि उनके पथ सत्यापन ने बहुत लंबी त्रुटि की सूचना दी थी।
दान नीली

15

XP फ़ाइल पथ- 250 अक्षर

विस्टा फ़ाइल पथ - 260 वर्ण

Windows XP की एक साफ स्थापना पर सबसे लंबा रास्ता 152 वर्णों का है।

Windows Vista की एक सेमी-क्लीन इंस्टाल पर सबसे लंबा रास्ता 195 अक्षरों का है:

Windows XP लंबाई में 255 वर्णों तक फ़ाइल नाम की अनुमति देता है

विंडोज विस्टा 260 वर्णों तक के लंबे फ़ाइलनाम को भी अनुमति देता है।

http://www.codinghorror.com/blog/archives/000729.html


5
यह सही है अगर आप यूनिकोड- एप का उपयोग नहीं करते हैं, जो सीमा को थोड़ा बढ़ा देता है (~ 32k, देखें msdn.microsoft.com/en-us/library/… )
akira

1
हममम। उस दर पर, Win7 की सीमा लगभग 265 अक्षर होनी चाहिए, नहीं?
क्वैक

वे दस वर्णों की सीमा क्यों बढ़ाएंगे? यह इसके लायक नहीं लगता है, यह करता है: \
Phoshi

यह गलत है। किसी भी विंडोज़ में अधिकतम फ़ाइल नाम की लंबाई अभी भी 255 वर्ण है, क्योंकि यह NTFS सीमा है
phuclv

8

Windows स्थिरांक MAX_PATH260 के बराबर है क्योंकि अन्य उत्तर कहते हैं, हालांकि, वास्तविक सबसे लंबा पथ 32767 है।

देखें यहाँ

32k UNICODE का उपयोग करते समय है, लेकिन अब हमें इसका उपयोग करना चाहिए, इसलिए हमें ऐसी अधिकतम पथ लंबाई का भी उपयोग करना चाहिए।

इसके अलावा, आप एसओ में मेरे उत्तर पर एक नज़र डाल सकते हैं जो अधिकतम पथ लंबाई के बारे में अधिक विस्तृत कुछ बातें समझाता है।


1

"क्लासिक" सीमा है 260 अक्षर: drive letter+ :\+ 255 characters of filename+ \(या गोलाई के लिए) + null terminatorके रूप में अन्य उत्तर में कहा

हालाँकि वास्तविक आंतरिक सीमा 32767 वर्ण है जिसे पूर्ण रूप से योग्य पथ\\?\ प्राप्त करने के लिए जोड़कर प्राप्त किया जा सकता है

विंडोज एपीआई में कई कार्य हैं जिनमें 32,767 वर्णों की अधिकतम पथ लंबाई के लिए विस्तारित-लंबाई पथ की अनुमति देने के लिए यूनिकोड संस्करण भी हैं। इस प्रकार का पथ बैकस्लैश द्वारा अलग किए गए घटकों से बना है, प्रत्येक फ़ंक्शन के lpMaximumComponentLengthपैरामीटर में दिए गए GetVolumeInformationमान तक (यह मान आमतौर पर 255 वर्ण है)। विस्तारित-लंबाई पथ निर्दिष्ट करने के लिए, "\\?\"उपसर्ग का उपयोग करें । उदाहरण के लिए, "\\?\D:\very long path"

तो कारण कुछ कारणों पूरी तरह से योग्य पथ तो गहरी निर्देशिका के साथ एक ड्राइव अक्षर को बढ़ते द्वारा पहुँचा जा सकता है नहीं किया जा सकता करने के लिए subst/ diskpartया एक बनाने के द्वारा जंक्शन / सिमलिंक पथ छोटा करने के लिए

विंडोज 10 के बाद से MAX_PATHसीमा भी हटा दी गई है, हालांकि डिफ़ॉल्ट रूप से नहीं

विंडोज 10 में शुरू, संस्करण 1607, MAX_PATHसामान्य Win32 फ़ाइल और निर्देशिका फ़ंक्शन से सीमाएं हटा दी गई हैं। हालाँकि, आपको नए व्यवहार के लिए ऑप्ट-इन करना होगा।

https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file

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