Go言語とファイル操作

go

こんにちは!

今日は、Go言語によるファイル操作を記事にしたいと思います。

事前準備

以下のフォルダとファイルを任意の場所に作成してください。

現在パスの取得

File操作には、パスの取得が重要ですよね。

osモジュールのGetwd関数で取得しましょう。

以下のコマンドを実行してみましょう。

main.goが格納されているパスが取得できてますね。

ディレクトリ走破

ファイル操作するにあたり、特定のディレクトリ内に格納されているファイル情報を全て取得したいってことはよくありますよね?

次はそのコードを書いてみます。

「path/filepath」モジュールのWalk関数を使いました。

第一引数にはrootのパスを、第二引数には「filepath.WalkFunc」typeの関数を渡します。

getFileList関数では、渡したrootパスを元にフォルダ検索をかけて、パスをfiles変数に格納してくれます。

実験のために、main.goファイルと同階層に次のファイルを作成しましょう。

それでは、コマンドを実行します。

素晴らしいですね。

ファイル圧縮

ファイル圧縮も簡単にできます。

先ほど作成したファイルをgz形式に圧縮しましょう。

今回は、ファイルの一つ一つをgzにしました。

非同期処理で、compressFile関数を実行してます。

sync.WaitGroupは、全ての非同期が処理を完了するまで、プログラムの停止を待ってくれる便利な機能です。

それでは、実行してみましょう。

main.goファイルの配下にgzファイルが作成されるはずです。

おわりに

ここでは、よく使うファイル操作を書きましたが、まだまだ物足りませんねw

これからも便利なプログラムを見かけたり、書いたりしたらこの記事に追加していこうと思います!

コメントを残す