rust-fatfs fork with rs-core_io as dependency instead. No support for chrono.
Go to file
Rafał Harabień 18b9d8c285 Do not panic if unexpected file type is found during path traversal
For example if in the middle of the path a file is found.
Return error in such case instead of panicking.
2018-06-07 23:26:11 +02:00
examples Avoid using unwrap() in examples 2018-05-31 21:40:40 +02:00
resources Add LFN support and rename some functions. 2017-09-24 22:12:38 +02:00
scripts Make create-test-img.sh more portable. 2017-10-21 17:38:20 +02:00
src Do not panic if unexpected file type is found during path traversal 2018-06-07 23:26:11 +02:00
tests Do not panic if unexpected file type is found during path traversal 2018-06-07 23:26:11 +02:00
.editorconfig Add .editorconfig file and fix whitespaces in existing files. (#4) 2017-10-25 17:20:27 +02:00
.gitignore Add Cargo.lock to .gitignore 2018-05-10 16:34:21 +02:00
.travis.yml Update Travis config and set 1.24 as minimal supported rustc version 2018-06-04 22:35:15 +02:00
build-nostd.sh Fix std build 2018-05-10 15:14:09 +02:00
Cargo.toml Fix std build 2018-05-10 15:14:09 +02:00
LICENSE.txt Rename repository to rust-fatfs. 2017-11-08 23:00:30 +01:00
README.md Update Travis config and set 1.24 as minimal supported rustc version 2018-06-04 22:35:15 +02:00
TODO.md Add method for renaming/moving a file 2018-06-06 13:56:59 +02:00

Rust FAT FS

Travis Build Status MIT licensed crates.io Documentation Minimum rustc version

FAT filesystem library implemented in Rust.

Features:

  • read/write/create/remove file,
  • enumerate directory children,
  • create/remove directory,
  • read/write file timestamps (updated automatically if chrono feature is enabled),
  • FAT12, FAT16, FAT32 compatibility,
  • LFN (Long File Names) extension supported,
  • Basic no_std environment support.

Usage

Put this in your Cargo.toml:

[dependencies]
fatfs = "0.2"

Put this in your crate root:

extern crate fatfs;

You can start using library now:

let img_file = File::open("fat.img")?;
let mut buf_stream = fatfs::BufStream::new(img_file);
let fs = fatfs::FileSystem::new(&mut buf_stream, fatfs::FsOptions::new())?;
let mut root_dir = fs.root_dir();
let mut file = root_dir.create_file("hello.txt")?;
file.write_all(b"Hello World!")?;

See more examples in examples subdirectory.

no_std usage

Put this in your Cargo.toml:

[dependencies]
fatfs = { version = "0.2", features = ["core_io"], default-features = false }

Note: LFN support requires alloc and core_io/collections features and makes use of alloc crate. You may have to provide a memory allocator implementation.

For building in no_std mode nightly Rust version compatible with current core_io crate is required. See date string in core_io dependency version.

License

The MIT license. See LICENSE.txt.