Skip to content

🗂 Rust OS/File System Utilities

Uses from:

use std::fs;
use std::fs::{File, OpenOptions};
use std::io::{Read, Write};
use std::path::Path;

📄 Check if a file or directory exists

let path = Path::new("some_file.txt");

if path.exists() {
    println!("File or directory exists!");
}

🆕 Create a file (overwrite if exists)

let mut file = File::create("hello.txt")?;
file.write_all(b"Hello, Rust!")?;

Overwrites if file already exists.


➕ Append to a file (or create if doesn't exist)

let mut file = OpenOptions::new()
    .append(true)
    .create(true)
    .open("hello.txt")?;

file.write_all(b"\nAppended line")?;

📖 Read a file (whole content as String)

let contents = fs::read_to_string("hello.txt")?;
println!("{}", contents);

🔄 Read raw bytes from a file

let bytes = fs::read("hello.txt")?;
println!("{:?}", bytes);

🗑 Delete a file

fs::remove_file("hello.txt")?;

📁 Create a directory

fs::create_dir("my_folder")?;
  • Recursive: fs::create_dir_all("a/b/c")?;

🗑 Delete a directory

fs::remove_dir("my_folder")?;
  • Recursive delete: fs::remove_dir_all("a/b")?;

📜 List files in a directory

for entry in fs::read_dir("some_folder")? {
    let entry = entry?;
    println!("{:?} : {:?}", entry.path(), entry.file_type().unwrap().is_file());
}

✅ Summary Table

Task Function / Method
Check if file/dir exists Path::exists()
Create (overwrite) file File::create()
Append to file OpenOptions::new().append(true)...
Read file as String fs::read_to_string()
Read file as bytes fs::read()
Write bytes to file file.write_all(b"...")
Delete file fs::remove_file()
Create directory fs::create_dir() / create_dir_all()
Delete directory fs::remove_dir() / remove_dir_all()
List dir entries fs::read_dir()