Go でのファイルの存在の確認
Go でファイルを操作する場合、多くの場合、その後の操作を続行する前にファイルが存在するかどうかを確認する必要があります。 。 Python の os.path.exists とは異なり、Go 標準ライブラリはこの目的のための直接関数を提供しません。
ファイルの存在を確認する慣用的な方法
次のことを確認するにはファイルが存在しません:
if _, err := os.Stat("/path/to/whatever"); errors.Is(err, os.ErrNotExist) { // path/to/whatever does not exist }
ファイルがあるかどうかを確認するには存在します:
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 }
説明
os.Stat 関数は、ファイルの属性を表す FileInfo オブジェクトを返します。ファイルが存在しない場合はエラーを返します。 errors.Is 関数を使用してエラーを os.ErrNotExist と比較すると、ファイルが存在しないエラーと他のエラーを区別できます。
注意
予期しない動作を引き起こす可能性があるため、ファイルの存在をテストするための os.IsNotExist の否定 (例: !os.IsNotExist(err))場合によっては。
以上がGo でファイルの存在を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。