كيف تتحقق مما إذا كان الملف موجودًا في Go؟ (بدون سباقات بيانات غير ضرورية)
مرحبًا بالجميع! لقد بدأت للتو في تعلم Go وواجهت مهمة بسيطة للوهلة الأولى: أحتاج إلى التحقق مما إذا كان الملف موجودًا على القرص قبل قراءته أو الكتابة إليه. في Python اعتدت على فعل ذلك:
```go
import os
if os.path.exists("myfile.txt"):
print("الملف موجود")
```
لكن في Go لم أجد مثل هذه الوظيفة البسيطة. في توثيق حزمة `os` توجد وظيفة `Stat()` التي ترجع خطأ إذا لم يكن الملف موجودًا. كتبت هذا الكود:
```go
package main
import (
"fmt"
"os"
)
func main() {
_, err := os.Stat("myfile.txt")
if err != nil {
if os.IsNotExist(err) {
fmt.Println("الملف غير موجود")
} else {
fmt.Println("حدث خطأ آخر:", err)
}
} else {
fmt.Println("الملف موجود")
}
}
```
يبدو أنه يعمل، لكني أشعر بالارتباك لأن توثيق Go غالبًا ما يذكر أن التحقق من الوجود قبل القراءة/الكتابة هو نمط مضاد، لأنه بين التحقق والعملية