आप फ़ाइलों को कैसे निकाल रहे हैं? क्या आप कमांड-लाइन या GUI का उपयोग कर रहे हैं? क्या आप फ़ाइलों को खींच रहे हैं या उनका चयन कर रहे हैं और एक्स्ट्रेक्ट फ़ंक्शन का उपयोग कर रहे हैं? क्या आप शेल-एक्सटेंशन संदर्भ-मेनू का उपयोग कर रहे हैं?
यदि आप एक गंतव्य फ़ोल्डर में प्रवेश करते हैं और फिर अर्क फ़ंक्शन का चयन करते हैं या शेल-एक्सटेंशन का उपयोग करते हैं, तो वे पहले एक अस्थायी फ़ोल्डर में नहीं निकालते हैं, वे सीधे गंतव्य पर निकालते हैं।
आप यूआई में फ़ाइलों का चयन और यदि खींचें उन्हें लक्ष्य फ़ोल्डर के लिए, तो यह होगा एक अस्थायी फ़ोल्डर के लिए निकालें।
इसका कारण यह है कि गंतव्य का चयन कैसे किया जाता है। यदि आप लक्ष्य फ़ोल्डर में प्रवेश करते हैं या संदर्भ-मेनू आइटम का उपयोग करते हैं, तो प्रोग्राम को ठीक से पता है कि इसे कहां निकालना है। हालाँकि, यदि आप केवल फ़ाइलों को खींचते हैं, तो OLE का ड्रैग-एंड-ड्रॉप फ़ंक्शन कैसे काम करता है, इस कारण प्रोग्राम को यह नहीं पता कि लक्ष्य फ़ोल्डर कहाँ है। दूसरे शब्दों में, यह एक्सप्लोरर हैवह लक्ष्य फ़ोल्डर प्राप्त करता है, संग्रह कार्यक्रम नहीं। नतीजतन, प्रोग्राम को यह नहीं पता चल सकता है कि उन्हें कहां निकालना है, और इसलिए उन्हें अस्थायी फ़ोल्डर में निकाल दिया जाता है, फिर एक्सप्लोरर एक बार उन्हें पूरा कर लेता है। आप दोनों विधियों का उपयोग करके एक बड़ी फ़ाइल को निकालकर इसे स्पष्ट रूप से देख सकते हैं। जब आप इसे किसी फ़ोल्डर में खींचते हैं, तो यह बाहर निकलता है, फिर आप एक्सप्लोरर के मानक फ़ाइल ऑपरेशन संवाद को फ़ोल्डर में ले जाते हुए देखते हैं। यदि आप फ़ोल्डर निर्दिष्ट करते हैं और एक्स्ट्रेक्ट पर क्लिक करते हैं, तो वह अर्क हो जाता है और आगे की प्रक्रिया नहीं होती है।
7-ज़िप के लिए स्रोत-कोड को देखने के लिए स्वतंत्र महसूस करें कि निष्कर्षण स्थान को कैसे नियंत्रित किया जाता है।
मैंने इसे कई साल पहले सीखा था जब मैं एक कार्यक्रम में ड्रैग-एंड-ड्रॉप को लागू करना चाहता था जो मैं लिख रहा था।