Yanıtlar:
// exists returns whether the given file or directory exists
func exists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil { return true, nil }
if os.IsNotExist(err) { return false, nil }
return false, err
}
Hata işleme eklemek için düzenlendi.
panic
gerçek bir "istisna" benzeri nesne için kullanır . Bir çağrı ile "yakalayabilirsiniz" recover
. err
Bir ikinci dönüş değeri olarak açıkça döndürmek son derece yaygın, deyimsel bir Go tekniğidir. Bakınız: golang.org/doc/effective_go.html#errors
if _, err := os.Stat("./conf/app.ini"); err == nil { /*exists*/ } else { /*not exists or some other error*/ }
Bunu kullanabilirsiniz:
if _, err := os.Stat("./conf/app.ini"); err != nil {
if os.IsNotExist(err) {
// file does not exist
} else {
// other error
}
}
Bakınız: http://golang.org/pkg/os/#IsNotExist
Daha çok bilgi için, birkaç dakika etrafıma baktığımdan beri sorumun hızlı bir arama uzaklıkta olduğunu düşündüm.
Yolun Go'da var olan bir dizini temsil edip etmediği nasıl kontrol edilir?
Bu, arama sonuçlarımdaki en popüler cevaptı, ancak burada ve başka yerlerde çözümler yalnızca mevcudiyet kontrolü sağlar. path
Mevcut bir dizini temsil edip etmediğini kontrol etmek için kolayca yapabileceğimi fark ettim:
path := GetSomePath();
if stat, err := os.Stat(path); err == nil && stat.IsDir() {
// path is a directory
}
path/filepath
Sorunumun bir kısmı, paketin isDir () işlevini içermesini beklememdi.
Dosyanın var olup olmadığını kontrol etmenin basit yolu:
if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {
// path/to/whatever does not exist
}
if _, err := os.Stat("/path/to/whatever"); err == nil {
// path/to/whatever exists
}
Kaynaklar:
Dosyanızın var olup olmadığını kontrol etmenin basit bir yolu vardır:
if _, err := os.Stat("./conf/app.ini"); err != nil {
if os.IsNotExist(err) {
..... //Shows error if file not exists
} else {
..... // Shows success message like file is there
}
}
f, err := os.Open(name)
veyaf, err := os.OpenFile(name,os.O_CREATE|os.O_EXCL, mode)
sonra kontrol edinos.IsNotExist(err)
).