8个版本
0.3.1 | 2022年2月4日 |
---|---|
0.3.0 | 2021年3月26日 |
0.2.3 | 2020年10月22日 |
0.2.2 | 2020年9月27日 |
0.1.1 | 2020年3月19日 |
#19 in #file-dialog
84 每月下载量
用于 propdayscov
74KB
2K SLoC
💾 nfd2
nfd2
是一个 Rust 绑定到 nativefiledialog 库的库,它提供了一个方便的跨平台接口,用于在 Windows、MacOS 和 Linux 上打开文件对话框。
这是一个分支!
原始的 nfd-rs 仓库现在似乎已经基本停止维护,所以我们创建了此分支,目的是确保它至少得到维护,并且错误得到修复,这样我们就可以依赖它。
话虽如此,我们使用此仓库的最终目标是使其最终成为纯 Rust,无需任何外部 C 代码或构建脚本。
依赖项
由于此仓库目前依赖于 nativefiledialog,您必须安装该项目的依赖项。有关每个平台的详细信息,请参阅 编译您的程序 中的 README.md 文件。
Linux
Linux 需要在构建之前安装 GTK3 开发包
- Debian/Ubuntu:
apt-get install libgtk-3-dev
- Fedora:
dnf install gtk3-devel
其他
其他平台不需要额外的安装。
用法
单个文件对话框
use nfd2::Response;
fn main() {
match nfd2::open_file_dialog(None, None).expect("oh no") {
Response::Okay(file_path) => println!("File path = {:?}", file_path),
Response::OkayMultiple(files) => println!("Files {:?}", files),
Response::Cancel => println!("User canceled"),
}
}
多个文件对话框
use nfd2::Response;
fn main() {
/// Only show .jpg files
let result = nfd2::dialog_multiple().filter("jpg").open().expect("oh no");
match result {
Response::Okay(file_path) => println!("File path = {:?}", file_path),
Response::OkayMultiple(files) => println!("Files {:?}", files),
Response::Cancel => println!("User canceled"),
}
}
贡献
我们欢迎社区对此项目的贡献。
请阅读我们的贡献指南,以获取有关如何开始的更多信息。
许可证
MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)和Zlib(《Zlib》或https://opensource.org/licenses/Zlib》)
无运行时依赖
~180KB