non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

Goの学習メモ~ファイルの存在チェックとWindowsでのファイルパスの扱い~

こんばんは、自宅のガスコンロが新しくなってから、魚焼き器の火力が強すぎ、食パンを焼くのに難儀していたので、 ようやく次男が湘南新宿ラインを燃やして、ダメにしたトースターを買うことにしました。(全額ポイントでw)。kjunichiです。

背景

細々と続けているElectronベースのThree.jsを使った3Dマスコットのgopheronの開発で最近学んだ Go関連の学習記録

Electronの1.4系から、とつぜん動作が遅くなるなぞの現象に遭遇して、悩み中。仕方ないので、 1.3系をローカルに入れ、これを使うことに。

その辺りの実装で必要となったGoの学習記録。

ファイル関連

ファイルの存在チェック

electronがローカルでインストールされてるかを調べた。

func Exists(filename string) bool {
    _, err := os.Stat(filename)
    return err == nil
}

// ・・・

if Exists(localElectron) {
    return filepath.FromSlash(localElectron)
}

Windows向けのパスにしてシェルに渡す

存在チェックのようにgoのライブラリには「/」のファイルセパレータで結構いけるようだが、 shellを呼ぶような際には以下のような変換が必要だった。

filepath.FromSlash("./test/sub/command.exe")

参考記事

関連記事

4年前の記事