Skip to main content
  1. Posts/

Go言語でのファイル操作を楽にするパッケージ「gkgfiler」作りました。ディレクトリの再帰検索、ファイルのテキストリプレイスとか色々

·128 words·1 min
Table of Contents

どうもsaikiです。

表題の通りGo言語でのファイル操作を楽にするパッケージ「gkgfiler」を作りました。

ファイルを再帰的に探す、ファイルの一部を置換するとか、難しくないけど若干めんどくさい処理をまとめました。

結構頑張ったので、機会があったらぜひ使ってください。コマンドラインツールを作るときとか役に立つのではないかと思います。

ちなみにgkgはgokigen(ご機嫌)の略です。ご機嫌です。

以下、READMEの日本語版です。

gkgfiler
#

gkgfiler(gokigen-filer)はgo言語でのファイル操作を少しだけ幸せにするパッケージです。

ファイルを再帰的に探す、ファイルの一部を置換する、ファイルの末尾に追加する、ファイルに文字列が含まれているか調べるなど、たまにやるとちょっとめんどくさいものをメソッドとして用意しました。

package gkgfiler
#

    import "github.com/sasasaiki/gkgfiler"

FUNCTIONS
#

func AppendText(path, appendStr string, perm os.FileMode) error
    AppendText appendStrをファイル末尾に追記します。permはパーミッション。0777とかです。


func Contains(filename, findStr string) (bool, error)
    Contains ファイルにfindStrが含まれているかどうかを返します。


func Exist(path string) bool
    Exist ファイル・フォルダが存在するかどうかを返します


func GetGoSrcPath() (string, error)
    GetGoSrcPath $GOPATH/src を返します。:区切りで複数あった場合は最初のだけ返します。


func GetPaths(dir string, includeDir bool, matchingPatterns ...string) (matches []string, e error)
    GetPaths パターンにマッチしたファイル を(includeDirをtrueにしているとディレクトリも) 返します。
    patterns

    matchingPatterns exsample "*.go","*.yaml"
    全て返したい場合は "*" を渡します


func GetPathsRecurcive(dir string, includeDir bool, matchingPatterns ...string) (paths []string, e error)
    GetPathsRecurcive 再帰的にファイルを(includeDirをtrueにしているとディレクトリも)返します。

    matchingPatterns exsample "*.go","*.yaml"
    全て返したい場合は "*" を渡します


func IsDir(path string) (bool, error)
    IsDir ディレクトリかどうかを返します


func ReplaceText(filename, origin, replace string, perm os.FileMode) error
    ReplaceText ファイルに含まれる全てのoriginをreplaceに置き換えます。permはパーミッション。0777とかです。


func WriteText(path, str string, createIfNothing bool, perm os.FileMode) error
    WriteText ファイルにstrを上書きします。createIfNothingをtrueにすると存在しない場合作成して書き込みます。permはパーミッション。0777とかです。

こんな感じです。
大した量じゃないのにすごくつかれた気がします。
因みにテストもちゃんと書いたので、割と安定して動くことかと思います。
使ったらgithubのスターとかコメントとかつけてもらえると…嬉しいなぁ…
モチベーションにもつながリマス。

テストは最高。

ではまた。

Related

VSCodeでDELVEを使ってGo言語のデバッグをするー改訂版 webアプリもテストもdegubできる!!
·90 words·1 min
go言語でpngとjpeg,jpgをリサイズして保存するパッケージを作った
·14 words·1 min
The tour of go をやって大事だと思ったとこだけメモ
·559 words·3 mins