Как я могу прочитать файл или создать его вместе с его каталогом, если он не существует? - PullRequest
0 голосов
/ 04 мая 2020

Я хочу прочитать файл в вектор, но если он не существует, я не хочу, чтобы программа запускала c. Вместо этого я хочу, чтобы файл был создан (с пустым содержимым). Если каталог не существует, я хочу, чтобы он тоже был создан.

Как я могу сделать это автоматически в Rust?

Это мой текущий код:

pub fn read(path: &str) -> Vec<String> {
    let file = File::open(path).unwrap();
    let reader = BufReader::new(file);
    let mut history = Vec::new();
    for line in reader.lines() {
        history.push(line.unwrap());
    }
    history
}

1 Ответ

1 голос
/ 04 мая 2020

Ингредиенты:

Если вы не хотите, чтобы ваша программа панила c, unwrap не ваш друг, так как она паникует, как только вы вызываете ее на Err , Теперь, учитывая, что файловые операции - вообще говоря - могут всегда go неправильно, вы должны решить, что делать в случае сбоя файловой операции. Просто вернуть пустой Vec без какого-либо связанного файла?

В связи с этим обработка ошибок , в частности с Result, стоит прочитать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...