# ApeFATFS [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.txt) [![Crates.io](https://img.shields.io/crates/v/ape-fatfs)](https://crates.io/crates/ape-fatfs) [![Documentation](https://docs.rs/ape-fatfs/badge.svg)](https://docs.rs/ape-fatfs) [![APE](https://img.shields.io/badge/-APE-%2359118e)](https://openapeshop.org/) ## *versitile FAT library for embedded systems* # Usage This crate is can be used by adding `fatfs` to the dependencies in your project's `Cargo.toml`. ```toml [dependencies] ape-fatfs = "0.2.0" # Comment out the above and uncomment the below to enable no_std support # ape-fatfs = { default_features = false, version = 0.2.0 } ``` # Examples ```rust use std::io::prelude::*; use ape_fatfs::{ fs::{ FsOptions, FileSystem, } }; fn main() { # std::fs::copy("resources/fat16.img", "fat.img").unwrap(); // Initialize a filesystem object let img_file = std::fs::OpenOptions::new().read(true).write(true) .open("fat.img").unwrap(); let buf_stream = fscommon::BufStream::new(img_file); let fs = FileSystem::new(buf_stream, FsOptions::new()).unwrap(); let root_dir = fs.root_dir(); // Write a file root_dir.create_dir("foo").unwrap(); let mut file = root_dir.create_file("foo/hello.txt").unwrap(); file.truncate().unwrap(); file.write_all(b"Hello World!").unwrap(); // Read a directory let dir = root_dir.open_dir("foo").unwrap(); for r in dir.iter() { let entry = r.unwrap(); println!("{}", entry.file_name()); } # std::fs::remove_file("fat.img").unwrap(); } ```