डायरेक्टरी मौजूद है या नहीं, जांचना

Go:
डायरेक्टरी मौजूद है या नहीं, जांचना

कैसे करें:

Go में, os पैकेज ऑपरेटिंग सिस्टम के साथ बातचीत करने की कार्यक्षमताएं प्रदान करता है, जिसमें यह जांचना शामिल है कि कोई निर्देशिका मौजूद है या नहीं। यहाँ आप इसे कैसे कर सकते हैं:

package main

import (
    "fmt"
    "os"
)

// isDirExists की जांच करता है कि कोई निर्देशिका मौजूद है या नहीं
func isDirExists(path string) bool {
    info, err := os.Stat(path)
    if os.IsNotExist(err) {
        return false
    }
    return info.IsDir()
}

func main() {
    dirPath := "/tmp/exampleDir"

    if isDirExists(dirPath) {
        fmt.Printf("निर्देशिका %s मौजूद है।\n", dirPath)
    } else {
        fmt.Printf("निर्देशिका %s मौजूद नहीं है।\n", dirPath)
    }
}

उदाहरण आउटपुट:

निर्देशिका /tmp/exampleDir मौजूद है।

या

निर्देशिका /tmp/exampleDir मौजूद नहीं है।

निर्भर करता है कि /tmp/exampleDir मौजूद है या नहीं।

गहराई से जानकारी

os.Stat फ़ंक्शन एक FileInfo इंटरफ़ेस और एक त्रुटि देता है। यदि त्रुटि os.ErrNotExist प्रकार की है, इसका मतलब है कि निर्देशिका मौजूद नहीं है। यदि कोई त्रुटि नहीं है, तो हम आगे जांचते हैं कि पथ वास्तव में किसी निर्देशिका को संदर्भित करता है या नहीं IsDir() मेथड के माध्यम से जो कि FileInfo इंटरफ़ेस से है।

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

इतिहास में, इस दृष्टिकोण को प्रोग्रामिंग में इसके सीधे तर्क के कारण आमतौर पर अपनाया गया है। हालाँकि, मल्टी-थ्रेडेड और समवर्ती कम्प्यूटिंग के विकास की आवश्यकता अधिक रोबस्ट त्रुटि हैंडलिंग की ओर एक बदलाव की ओर इशारा करती है और जहाँ संभव हो, इस तरह की पूर्वशर्त जांच से बचने की। यह उनके उपयोग को सरल, सिंगल-थ्रेडेड एप्लीकेशनों या स्क्रिप्ट्स के लिए कम नहीं करता है जहाँ ऐसी स्थितियाँ कम चिंता का विषय होती हैं।