Rumah >pembangunan bahagian belakang >Golang >Bagaimana Saya Boleh Semak Kewujudan Fail dalam Go?

Bagaimana Saya Boleh Semak Kewujudan Fail dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-12-26 21:28:10831semak imbas

How Can I Check for File Existence in Go?

Menyemak Kewujudan Fail dalam Go

Apabila bekerja dengan fail dalam Go, selalunya perlu untuk menentukan sama ada fail wujud sebelum meneruskan operasi selanjutnya . Tidak seperti os.path.exists Python, perpustakaan standard Go tidak menyediakan fungsi langsung untuk tujuan ini.

Cara Idiomatik untuk Semak Kewujudan Fail

Untuk menyemak sama ada fail tidak wujud:

if _, err := os.Stat("/path/to/whatever"); errors.Is(err, os.ErrNotExist) {
  // path/to/whatever does not exist
}

Untuk menyemak sama ada fail wujud:

if _, err := os.Stat("/path/to/whatever"); err == nil {
  // path/to/whatever exists

} else if errors.Is(err, os.ErrNotExist) {
  // path/to/whatever does *not* exist

} else {
  // Schrodinger: file may or may not exist. See err for details.

  // Therefore, do *NOT* use !os.IsNotExist(err) to test for file existence
}

Penjelasan

Fungsi os.Stat mengembalikan objek FileInfo yang mewakili atribut fail atau ralat jika fail itu tidak wujud. Dengan menggunakan fungsi errors.Is untuk membandingkan ralat dengan os.ErrNotExist, anda boleh membezakan antara fail yang tidak sedia ada dan ralat lain.

Awas

Elakkan menggunakan penafian os.IsNotExist (cth., !os.IsNotExist(err)) untuk menguji fail kewujudan, kerana ia boleh membawa kepada tingkah laku yang tidak dijangka dalam beberapa kes.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Semak Kewujudan Fail dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn