ごらくらいふ

プログラミングしたりゲームしたり

Rustでホームディレクトリのファイルを読み込みたい(ドキュメントに書いてあってうれしかった話)

これ。

use std::env;
use std::path::{Path, PathBuf};
use std::fs::File;
use std::io::prelude::*;

fn open_file() {
    let mut path = env::home_dir().unwrap();
    path.push("config.toml");

    let mut file = File::open(path).unwrap();
    let mut contents = String::new();
    file.read_to_string(&mut contents).unwrap();
    println!("body: {}", cotnents);
}

エラー処理は各々おねがい。

以下駄文(経緯ともいう)

ホームディレクトリ知りたいな。環境変数からかな。

お、標準ライブラリにそれっぽいのあるぞ。

std::env - Rust

むしろホームディレクトリ直通の関数があるぞ…素晴らしか。

std::env::home_dir - Rust

なるほどPathBufを返却するのかー。

ファイル名の追加はどうしたら良いんだろう。と思ったらPathBufのトップに書いてある…最高か。

std::path::PathBuf - Rust

じゃああとはファイル読み込みか。fsモジュールっぽいよね。

あ~~トップに答え書いてある~~~すき~~~。

std::fs::File - Rust

標準ドキュメント素晴らしい。これで私はconfigを得ました。(あとtomlをデシリアライズしたりしてる。)