Mengakses Fail dalam Direktori Fail Sumber dalam Go
Apabila menulis program Go, mengakses fail yang terletak dalam direktori yang sama dengan fail sumber boleh menjadi mencabar. Tidak seperti bahasa yang ditafsirkan, di mana fail sumber wujud bersama dengan binari yang sedang berjalan, program Go yang disusun tidak memerlukan fail sumber untuk hadir semasa pelaksanaan.
Pencarian Laluan Fail Lalai
Secara lalai, fungsi seperti os.Open() mencari fail dalam direktori kerja semasa (PWD) yang ditakrifkan oleh pembolehubah persekitaran berikut:
$PWD: /dir
Jika anda cuba membuka fail bernama "myfile. txt" menggunakan:
<code class="go">os.Open("myfile.txt")</code>
Go akan mencari "myfile.txt" dalam direktori kerja semasa "/dir".
Kekurangan Penempatan Semula Direktori Terbina dalam
Go tidak menawarkan mekanisme terbina dalam untuk mengesan fail secara automatik dalam direktori yang sama dengan fail sumber. Setara dengan FILE Ruby tidak wujud dalam Go.
Walau bagaimanapun, fungsi runtime.Caller menyediakan akses kepada nama fail pada masa penyusunan:
<code class="go">filepath := runtime.Caller(0)</code>
Pendekatan Alternatif
Daripada bergantung pada penemuan laluan fail automatik, pertimbangkan pendekatan alternatif:
<code class="go">import "path/filepath" const __FILE__ = filepath.Join(filepath.Dir(runtime.Caller(0)), "src.go")</code>
Atas ialah kandungan terperinci Bagaimanakah Anda Mengakses Fail dalam Direktori yang Sama dengan Fail Sumber Go Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!