Struct std::fs::OpenOptions
[−]
[src]
pub struct OpenOptions(_);
Options and flags which can be used to configure how a file is opened.
This builder exposes the ability to configure how a File
`Fileis opened and what operations are permitted on the open file. The
` is opened and
what operations are permitted on the open file. The File::open
`File::openand
` and
File::create
`File::create` methods are aliases for commonly used options using this
builder.
Generally speaking, when using OpenOptions
`OpenOptions, you'll first call
`, you'll first call new()
`new(), then chain calls to methods to set each option, then call
`,
then chain calls to methods to set each option, then call open()
`open(), passing the path of the file you're trying to open. This will give you a [
`, passing
the path of the file you're trying to open. This will give you a
io::Result
`io::Result` with a File
`File` inside that you can further
operate on.
Examples
Opening a file to read:
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().read(true).open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().read(true).open("foo.txt");
Opening a file for both reading and writing, as well as creating it if it doesn't exist:
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new() .read(true) .write(true) .create(true) .open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new() .read(true) .write(true) .create(true) .open("foo.txt");
Methods
impl OpenOptions
fn new() -> OpenOptions
Creates a blank net set of options ready for configuration.
All options are initially set to false
`false`.
Examples
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().open("foo.txt");
fn read(&mut self, read: bool) -> &mut OpenOptions
Sets the option for read access.
This option, when true, will indicate that the file should be
read
`read`-able if opened.
Examples
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().read(true).open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().read(true).open("foo.txt");
fn write(&mut self, write: bool) -> &mut OpenOptions
Sets the option for write access.
This option, when true, will indicate that the file should be
write
`write`-able if opened.
Examples
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().write(true).open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().write(true).open("foo.txt");
fn append(&mut self, append: bool) -> &mut OpenOptions
Sets the option for the append mode.
This option, when true, means that writes will append to a file instead of overwriting previous contents.
Examples
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().append(true).open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().append(true).open("foo.txt");
fn truncate(&mut self, truncate: bool) -> &mut OpenOptions
Sets the option for truncating a previous file.
If a file is successfully opened with this option set it will truncate the file to 0 length if it already exists.
Examples
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().truncate(true).open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().truncate(true).open("foo.txt");
fn create(&mut self, create: bool) -> &mut OpenOptions
Sets the option for creating a new file.
This option indicates whether a new file will be created if the file does not yet already exist.
Examples
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().create(true).open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().create(true).open("foo.txt");
fn open<P: AsRef<Path>>(&self, path: P) -> Result<File>
Opens a file at path
`pathwith the options specified by
` with the options specified by self
`self`.
Errors
This function will return an error under a number of different circumstances, to include but not limited to:
- Opening a file that does not exist with read access.
- Attempting to open a file with access that the user lacks permissions for
- Filesystem-level errors (full disk, etc)
Examples
fn main() { use std::fs::OpenOptions; let file = OpenOptions::new().open("foo.txt"); }use std::fs::OpenOptions; let file = OpenOptions::new().open("foo.txt");