Bagaimanakah Anda Mengakses Fail dalam Direktori yang Sama dengan Fail Sumber Go Anda?

Patricia Arquette
Lepaskan: 2024-10-26 08:56:02
asal
185 orang telah melayarinya

How Do You Access Files in the Same Directory as Your Go Source File?

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
Salin selepas log masuk

Jika anda cuba membuka fail bernama "myfile. txt" menggunakan:

<code class="go">os.Open("myfile.txt")</code>
Salin selepas log masuk

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>
Salin selepas log masuk

Pendekatan Alternatif

Daripada bergantung pada penemuan laluan fail automatik, pertimbangkan pendekatan alternatif:

  • Lulus Laluan Fail Secara Eksplisit: Tentukan yang mutlak laluan ke fail atau hantarkannya sebagai hujah.
  • Gunakan Fungsi Tersuai: Cipta fungsi tersuai yang mengambil laluan fail sumber dan bina laluan fail yang sepadan dalam direktori yang dikehendaki.
  • Takrifkan semula Pemalar "__FILE__": Walaupun Go tidak mentakrifkan "__FILE__" secara asal, anda boleh mentakrifkan pemalar untuk menunjuk ke lokasi fail sumber:
<code class="go">import "path/filepath"

const __FILE__ = filepath.Join(filepath.Dir(runtime.Caller(0)), "src.go")</code>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan