Go でソース ファイル ディレクトリ内のファイルにアクセスする
Go プログラムを作成する場合、ソース ファイルと同じディレクトリにあるファイルにアクセスすると、挑戦的であること。ソース ファイルが実行中のバイナリと共存するインタープリタ型言語とは異なり、コンパイル済み Go プログラムでは、実行中にソース ファイルが存在する必要はありません。
デフォルト ファイル パス ルックアップ
デフォルトでは、os.Open() のような関数は、次の環境変数で定義された現在の作業ディレクトリ (PWD) 内のファイルを検索します。
$PWD: /dir
「myfile. txt" using:
<code class="go">os.Open("myfile.txt")</code>
Go は、現在の作業ディレクトリ "/dir" で "myfile.txt" を検索します。
組み込みのディレクトリ再配置の欠如
Go には、ソース ファイルと同じディレクトリ内のファイルを自動的に見つける組み込みメカニズムがありません。 Ruby の FILE に相当するものは Go には存在しません。
ただし、 runtime.Caller 関数はコンパイル時にファイル名へのアクセスを提供します:
<code class="go">filepath := runtime.Caller(0)</code>
代替アプローチ
自動ファイル パス検出に依存する代わりに、代替アプローチを検討してください:
<code class="go">import "path/filepath" const __FILE__ = filepath.Join(filepath.Dir(runtime.Caller(0)), "src.go")</code>
以上がGo ソース ファイルと同じディレクトリ内のファイルにどのようにアクセスしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。