Go में वर्तमान निष्पादन योग्य फ़ाइल की निर्देशिका कैसे प्राप्त करें?
सभी को नमस्ते! मैं एक शुरुआती Go डेवलपर हूँ और एक समस्या का सामना कर रहा हूँ: मुझे अपने प्रोग्राम की वर्तमान निष्पादन योग्य फ़ाइल वाली निर्देशिका निर्धारित करनी है। मैं एक छोटा CLI एप्लिकेशन लिख रहा हूँ जो बाइनरी के समान फ़ोल्डर में स्थित एक कॉन्फ़िगरेशन फ़ाइल पढ़ता है। लेकिन जब मैं प्रोग्राम को किसी दूसरी निर्देशिका से चलाता हूँ (जैसे, प्रोजेक्ट रूट से `go run` के माध्यम से या सिस्टम PATH से), तो सापेक्ष पथ टूट जाते हैं।
यहाँ मैंने जो प्रयास किया:
```go
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
// प्रयास 1: बस os.Getwd() — यह कार्यशील निर्देशिका देता है, फ़ाइल फ़ोल्डर नहीं
wd, _ := os.Getwd()
fmt.Println("Working dir:", wd)
// प्रयास 2: os.Args[0] — वह पथ दिखाता है जिससे प्रोग्राम को कॉल किया गया
fmt.Println("Args[0]:", os.Args[0])
// प्रयास 3: filepath.Abs(os.Args[0]) — अभी भी सिम्बोलिक लिंक के साथ समस्या
abs, _ := filepath.Abs(os.Args[0])
fmt.Println("Abs:", abs)
}
```
समस्या यह है कि `os.Args[0]` बस हो सकता है