विंडोज़ सिस्टम में, फ़ाइलों को फिर से हटाने के लिए कार्यात्मक रूप से नाम बदल रहा है?


9

विंडोज फाइल सिस्टम की मेरी समझ के अनुसार, एक प्रोग्राम अपने पथ के अनुसार एक फाइल पढ़ सकता है, यदि यह पथ बदल जाता है, तो जो भी प्रोग्राम इस फाइल को पढ़ने के लिए उपयोग किया जाता है, वह अब ऐसा नहीं कर सकता है। इसका मतलब यह होगा कि, विंडोज़ सिस्टम के किसी भी प्रोग्राम में, जो एक फाइल पर निर्भर करता है, किसी फाइल को हटाने और नाम बदलने के परिणाम समान होने चाहिए।

जिस विशिष्ट मामले पर यह उत्तर निर्भर करता है वह विंडोज 2000 पर चलने वाला एक एम्बेडेड सिस्टम है, सेवा प्रदाता मैनुअल एक फ़ोल्डर के अंदर फाइलों को हटाने के लिए उपयोगकर्ता को निर्देशित करता है। एक सावधान उपयोगकर्ता के रूप में, मैंने बस "folder_backup" नामक पथ पर फ़ाइलों की प्रतिलिपि बनाई, और फ़ोल्डर को खाली छोड़ दिया।

इस ऑपरेशन के दौरान, सिस्टम वापस आ गया और सही ढंग से कार्य करने में असमर्थ था। इसलिए मैनुअल लिखने वाले सेवा प्रदाता को बुलाया गया था। उनका निदान यह था कि डेटाबेस दूषित था क्योंकि समानांतर में 2 डेटाबेस थे, दूसरे फ़ोल्डर के रूप में "folder_backup" की ओर इशारा करते हुए। मेरी समझ में, "D: / folder_backup" के अंदर की फाइलें निष्क्रिय हो चुकी होती हैं, जो प्रोग्राम के असाधारण मामले को "फ़ोल्डर" से शुरू होने वाले फ़ोल्डर की तलाश में रोकती हैं या "D: /" फाइल में सभी सामग्री को पढ़ती हैं।

जिन गैर-अस्पष्ट तरीकों से किसी पुनर्नामित फ़ाइल को अभी भी एक सिस्टम द्वारा एक्सेस किया जा सकता है, क्या वह अन्यथा असंभव होगा जो फ़ाइल हटा दी गई थी?


1
क्या आपने वास्तव में फ़ाइलों की प्रतिलिपि बनाई (किसी बिंदु पर दो प्रतियां होने और फिर मूल को हटाना) या बस उन्हें स्थानांतरित करना?
GSerg

1
क्या सिस्टम उन डेटाबेस को पढ़ते समय चल रहा था? यह विंडोज़ (लिनक्स पर भी) फ़ाइलों को कॉपी करने के लिए संभव है, जब वे खुले होते हैं (कुछ "मोड" में फ़ाइलों को खोलने वाले एप्लिकेशन के आधार पर)। इसका परिणाम संभवतः भ्रष्ट प्रतियां, BTW होगा।
दाविदबक

@davidbak ऋणात्मक, फ़ाइलों का नाम बदलने पर अनुप्रयोग बंद कर दिया गया था।
टॉमस जुबीरी

@GSerg मुझे विश्वास है कि मैंने फ़ोल्डर का नाम बदल दिया और फिर एप्लिकेशन सेटअप को इसे फिर से बनाने की अनुमति दी।
टॉमस जुबीरी

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

जवाबों:


16

वास्तव में चुनाव के लिए तैयार।


वाह, मुझे उम्मीद नहीं थी कि एक फ़ाइल का नाम बदलकर कुछ तोड़ने के कई तरीके होंगे। धन्यवाद!
टॉमस जुबीरी

@ wizzwizz4 2000 NT है
zdimension

-2

एक बदला हुआ फ़ाइल अभी भी दूसरे प्रोग्राम द्वारा एक्सेस किया जा सकता है।

  • एक तरह से बदला हुआ फ़ाइल अभी भी किसी अन्य प्रोग्राम द्वारा एक्सेस किया जा सकता है एक पर्यावरण चर है जो उसी फ़ाइल द्वारा नए फ़ाइल पथ पर सेट है जिसे फ़ाइल का नाम दिया गया है। कहा गया प्रोग्राम जो फ़ाइल को एक्सेस करना चाहता है, वह निश्चित रूप से निर्धारित फ़ाइल पथ के बजाय फ़ाइल पथ के लिए पर्यावरण चर का उपयोग करता है।

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

ऐसा करने में, कुछ प्रोग्राम स्वचालित रूप से उपयोगकर्ता को फ़ाइल का पता लगाने से पहले यह कोड निष्पादित करने के लिए कहेंगे

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