كيفية الحصول على مسار دليل الملف التنفيذي الحالي في Go؟
مرحبًا أيها الزملاء! أنا جديد في Go وقد واجهت مشكلة تبدو بسيطة ولكنها لا تحل. أحتاج في وقت التشغيل إلى معرفة الدليل الذي يوجد فيه الملف التنفيذي الحالي (ملف .exe المترجم أو binary).
المشكلة هي أنني أكتب أداة للعمل مع ملفات الإعدادات. هيكل المشروع كالتالي: بجانب binary يوجد مجلد configs، بداخله config.yaml. أريد أن يقرأ البرنامج هذا الملف دون استخدام مسارات مشفرة بشكل ثابت، لأن المستخدم قد ينسخ binary إلى أي مكان.
هذا هو الكود الحالي الذي لا يعمل:
```go
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
// أحاول خيارات مختلفة
exe, _ := os.Executable()
fmt.Println("Executable path:", exe)
dir := filepath.Dir(exe)
fmt.Println("Directory:", dir)
configPath := filepath.Join(dir, "configs", "config.yaml")
fmt.Println("Config path:", configPath)
}
```
لكن