"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > फ़ाइलों को कुशलतापूर्वक और सरलता से कैसे कॉपी करें?

फ़ाइलों को कुशलतापूर्वक और सरलता से कैसे कॉपी करें?

2024-11-19 को प्रकाशित
ब्राउज़ करें:674

How to Copy Files Efficiently and Simply in Go?

गो में कुशल और सरल फ़ाइल कॉपी करना

जटिल पुस्तकालयों या ऑपरेटिंग सिस्टम-निर्भर कोड का सहारा लिए बिना, गो में किसी फ़ाइल को कुशलतापूर्वक कॉपी करना, एक मजबूत कार्यान्वयन का उपयोग करके प्राप्त किया जा सकता है जो विभिन्न किनारे के मामलों को संभालता है। .लिंक() फ़ंक्शन। यह मूल फ़ाइल और गंतव्य फ़ाइल के बीच एक कड़ी कड़ी बनाता है, जो अनिवार्य रूप से प्रतिलिपि बनाने के बजाय उन्हें एक ही फ़ाइल बनाता है। यह दृष्टिकोण समय और डिस्क स्थान बचाता है, विशेष रूप से बड़ी फ़ाइलों के लिए।

विभिन्न सिस्टम प्रतिबंधों को संभालना

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

मजबूत और सामान्य प्रतिलिपि फ़ंक्शन

एक सामान्य और मजबूत प्रतिलिपि फ़ंक्शन बनाने के लिए , निम्नलिखित कदम उठाएं:

प्रतिलिपि का प्रयास करने से पहले अनुमतियों, निर्देशिका अस्तित्व और अन्य संभावित मुद्दों की जांच करें।

जांचें कि क्या दोनों फ़ाइलें मौजूद हैं और os.SameFile का उपयोग करके समान हैं। यदि वे हैं, तो सफलता लौटाएँ।

os.Link के साथ एक हार्ड लिंक का प्रयास करें। सफल होने पर वापस लौटें।
  1. यदि अन्य सभी विफल हो जाते हैं, तो फ़ाइल को बाइट दर बाइट कॉपी करें। कॉलिंग थ्रेड को ब्लॉक करने से बचने के लिए बाइट कॉपी को एक अलग गो रूटीन में निष्पादित किया जा सकता है। हालाँकि, इससे कॉल करने वाले की सफलता या विफलता को संभालने की जिम्मेदारी में जटिलता जुड़ जाती है।
  2. आसान कार्यान्वयन के लिए, कोई दो अलग-अलग प्रतिलिपि फ़ंक्शन बना सकता है: सिंक्रोनस प्रतिलिपि के लिए CopyFile() और अतुल्यकालिक प्रतिलिपि के लिए CopyFileAsync(), जो वापस आता है कॉल करने वाले को एक सिग्नलिंग चैनल। ]
  3. पैकेज मुख्य आयात ( "एफएमटी" "आईओ" "ओएस" ) func CopyFile(src, dst string) (त्रुटि त्रुटि) { // इनपुट मान्य करें // ... यदि err = os.Link(src, dst); त्रुटि == शून्य { वापस करना } त्रुटि = CopyFileContents(src, dst) वापस करना } func CopyFileContents(src, dst string) (त्रुटि त्रुटि) { // फ़ाइल सामग्री कॉपी करें // ... वापस करना } func मुख्य() { // ... त्रुटि := CopyFile(os.Args[1], os.Args[2]) यदि त्रुटि !=शून्य { // ... } }
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3