[][src]Crate fatfs

A FAT filesystem library implemented in Rust.

Usage

This crate is on crates.io and can be used by adding fatfs to the dependencies in your project's Cargo.toml.

[dependencies]
fatfs = "0.3"

And this in your crate root:

extern crate fatfs;

Examples

// Declare external crates
// Note: `fscommon` crate is used to speedup IO operations
extern crate fatfs;
extern crate fscommon;

use std::io::prelude::*;

fn main() -> std::io::Result<()> {
    // Initialize a filesystem object
    let img_file = std::fs::OpenOptions::new().read(true).write(true)
        .open("tmp/fat.img")?;
    let buf_stream = fscommon::BufStream::new(img_file);
    let fs = fatfs::FileSystem::new(buf_stream, fatfs::FsOptions::new())?;
    let root_dir = fs.root_dir();

    // Write a file
    root_dir.create_dir("foo")?;
    let mut file = root_dir.create_file("foo/hello.txt")?;
    file.truncate()?;
    file.write_all(b"Hello World!")?;

    // Read a directory
    let dir = root_dir.open_dir("foo")?;
    for r in dir.iter() {
        let entry = r?;
        println!("{}", entry.file_name());
    }
}

Structs

Date

A DOS compatible date.

DateTime

A DOS compatible date and time.

Dir

A FAT filesystem directory.

DirEntry

A FAT directory entry.

DirIter

An iterator over the directory entries.

File

A FAT filesystem file object used for reading and writing data.

FileAttributes

A FAT file attributes.

FileSystem

A FAT filesystem object.

FileSystemStats

A FAT volume statistics.

FormatVolumeOptions

A FAT filesystem formatting options

FsOptions

A FAT filesystem mount options.

FsStatusFlags

A FAT volume status flags retrived from the Boot Sector and the allocation table second entry.

Time

A DOS compatible time.

Enums

FatType

A type of FAT filesystem.

Traits

OemCpConverter

An OEM code page encoder/decoder.

ReadSeek

A sum of Read and Seek traits.

ReadWriteSeek

A sum of Read, Write and Seek traits.

TimeProvider

A current time and date provider.

Functions

format_volume

Create FAT filesystem on a disk or partition (format a volume)