РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
935 of 1245 menu

Тип OpenOptions

Тип OpenOptions представляет собой структуру для конфигурирования способа открытия файла. В отличие от методов File::open и File::create, которые задают фиксированные режимы, OpenOptions позволяет гибко комбинировать параметры: чтение, запись, добавление в конец, создание нового файла или усечение существующего. Каждый параметр настраивается отдельным методом, который принимает логическое значение и возвращает изменённую ссылку на тот же объект. Завершается настройка вызовом метода open, который открывает файл и возвращает результат типа Result<File>.

Синтаксис

use std::fs::OpenOptions; let mut options = OpenOptions::new(); options.read(true) .write(true) .append(true) .create(true) .create_new(true) .truncate(true); let file = options.open(path);

Пример

Давайте откроем файл для чтения и записи, создав его, если он не существует:

use std::fs::OpenOptions; fn main() { let path = "test.txt"; let res = OpenOptions::new() .read(true) .write(true) .create(true) .open(path); match res { Ok(_) => println!("File opened successfully"), Err(e) => println!("Error: {}", e), } }

Результат выполнения кода:

File opened successfully

Пример

Давайте откроем файл только для добавления в конец, создав его при необходимости:

use std::fs::OpenOptions; fn main() { let path = "test.txt"; let res = OpenOptions::new() .append(true) .create(true) .open(path); match res { Ok(_) => println!("File opened for appending"), Err(e) => println!("Error: {}", e), } }

Результат выполнения кода:

File opened for appending

Пример

Давайте попробуем открыть файл для чтения, запретив его создание, и обработаем ошибку, если файла не существует:

use std::fs::OpenOptions; fn main() { let path = "missing.txt"; let res = OpenOptions::new() .read(true) .create(false) .open(path); match res { Ok(_) => println!("File opened"), Err(e) => println!("Error: {}", e), } }

Результат выполнения кода:

Error: No such file or directory (os error 2)

Смотрите также

  • метод new,
    который создаёт новый набор опций для открытия файла
  • метод read,
    который разрешает чтение из файла
  • метод write,
    который разрешает запись в файл
  • метод open,
    который открывает файл с заданными параметрами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить