ファイルの削除は、ファイルを伴った定型的な作業をする場合に使われます。
例えば、ファイルにログデータを保存し、一定期間が経った後にそのファイルを自動的に削除したいというケースで使うことができますね。
本記事では、Golangでファイルを削除する方法について説明します。
os パッケージを使用したファイルの削除
ファイルやディレクトリを削除するためには、Golangのosパッケージをインポートする必要があります。
osパッケージには、Remove()関数とRemoveAll関数が含まれており、これらを使用することで削除処理を行うことができます。
1つのファイルを削除する
osパッケージのRemove関数は、ファイルパスを引数として受け取り、ファイルを削除します。
なお、削除されるのは1つのファイルだけです。
os.Remove("ファイルパス")
以下は、remove()関数の使用したコード例です。(main.goと同階層にtest.txtがあることを想定してます)
package main
import (
"fmt"
"os"
)
func main() {
err := os.Remove("test.txt") // 1つのファイルだけ削除される
if err != nil {
fmt.Println(err)
}
}
ディレクトリを丸ごと削除する
RemoveAll()関数は、パスを完全に削除する関数です。
つまり、ディレクトリ全体とその中にあるすべてのサブディレクトリとファイルを削除します。
構文はRemove()関数と同じです。
os.RemoveAll("ファイルパス")
以下は、Golangでディレクトリを削除するコード例です。(main.goと同階層にtestディレクトリがあることを想定しています)
package main
import (
"fmt"
"os"
)
func main() {
err := os.RemoveAll("test") // delete an entire directory
if err != nil {
fmt.Println(err)
}
}
この関数は、ディレクトリ全体を削除します。
Golangのファイル削除まとめ
ファイルを削除する方法を混同しないように、以下に注意しましょう
- 1つのファイルを削除する場合はRemove()関数を使用する
- ディレクトリ全体を削除する場合はRemoveAll()関数を使用する