9 个版本

使用旧的 Rust 2015

0.3.6 2023 年 1 月 17 日
0.3.5 2021 年 1 月 23 日
0.3.4 2020 年 7 月 20 日
0.3.3 2019 年 11 月 10 日
0.2.0 2017 年 11 月 8 日

#138 in 文件系统

Download history • Rust 包仓库 5125/week @ 2024-03-14 • Rust 包仓库 4766/week @ 2024-03-21 • Rust 包仓库 4594/week @ 2024-03-28 • Rust 包仓库 4725/week @ 2024-04-04 • Rust 包仓库 3511/week @ 2024-04-11 • Rust 包仓库 3545/week @ 2024-04-18 • Rust 包仓库 4065/week @ 2024-04-25 • Rust 包仓库 3430/week @ 2024-05-02 • Rust 包仓库 4908/week @ 2024-05-09 • Rust 包仓库 3970/week @ 2024-05-16 • Rust 包仓库 3382/week @ 2024-05-23 • Rust 包仓库 3717/week @ 2024-05-30 • Rust 包仓库 3123/week @ 2024-06-06 • Rust 包仓库 3496/week @ 2024-06-13 • Rust 包仓库 4723/week @ 2024-06-20 • Rust 包仓库 3307/week @ 2024-06-27 • Rust 包仓库

15,302 每月下载量
用于 19 Crates (12 个直接使用)

MIT 许可证

230KB
4K SLoC

Rust FAT FS

CI Status MIT licensed crates.io Documentation Minimum rustc version

使用 Rust 实现的 FAT 文件系统库。

功能

  • 使用标准 Read/Write 特性读写文件
  • 读取目录内容
  • 创建/删除文件或目录
  • 重命名/移动文件或目录
  • 读取/写入文件时间戳(如果启用了 chrono 功能,则自动更新)
  • 格式化卷
  • FAT12, FAT16, FAT32 兼容性
  • 支持 LFN(长文件名)扩展
  • 基本 no_std 环境支持

使用方法

将此添加到您的 Cargo.toml

[dependencies]
fatfs = "0.3"

并添加到您的 crate 根目录

extern crate fatfs;

现在您可以使用 fatfs 库了

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

注意:建议将底层文件结构封装在缓冲/缓存对象(如来自 fscommon crate 的 BufStream)中。例如

extern crate fscommon;
let buf_stream = BufStream::new(img_file);
let fs = fatfs::FileSystem::new(buf_stream, fatfs::FsOptions::new())?;

更多示例请参阅 examples 子目录。

no_std 使用

将此添加到您的 Cargo.toml

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

no_std 模式下构建需要与 core_io crate 兼容的 Rust 编译器版本。

目前 core_io 仅支持 nightly Rust 频道。请查看最新 core_io crate 版本中的日期后缀以获取确切的编译器版本。

其他功能

  • alloc - 使用 alloc crate 进行动态分配。对于 LFN(长文件名)支持和使用 String 类型的 API,需要。您可能需要提供内存分配器实现。

注意:上述功能默认启用。

许可证

MIT 许可证。请参阅 LICENSE.txt

依赖项

~1–13MB
~189K SLoC