#windows-file #everything #windows #file-search #search #file

everything-rs

Everything-sys-bindgen 的 Everything SDK 的用户友好的封装

3 个版本

0.1.9 2023 年 6 月 25 日
0.1.8 2023 年 5 月 29 日

Windows API 中排名 261

Download history 38/week @ 2024-03-29 8/week @ 2024-04-05

每月下载量 62

MIT/Apache

165KB
703 行代码(不包括注释)

包含 (Windows DLL, 95KB) Everything64.dll

Everything-rs

此包提供了对 everything-sys-bindgen 的安全封装。
everything-sys-bindgen 是一个 Rust 绑定到 Everything SDK,允许与 everything 服务进行 IPC 通信。

Everything 服务在 Windows 上索引文件,并提供一种表达式的查询语法来搜索文件。
有关更多信息,请参阅 Everything SDK 文档

有关示例,请参阅 docs.rs 文档。


lib.rs:

Everything

此包提供了对 everything-sys-bindgen 的安全封装。
everything-sys-bindgen 是一个 Rust 绑定到 Everything SDK,允许与 everything 服务进行 IPC 通信。
Everything 服务在 Windows 上索引文件,并提供一种表达式的查询语法来搜索文件。
有关更多信息,请参阅 Everything SDK 文档

示例

use everything_rs::{Everything, EverythingRequestFlags, EverythingSort, EverythingError};

fn main() -> Result<(), EverythingError> {
   let mut everything = Everything::new();

   everything.set_search("test");

   everything.set_request_flags(
       EverythingRequestFlags::FullPathAndFileName
       | EverythingRequestFlags::Size
       | EverythingRequestFlags::DateCreated
   );

   everything.set_sort(EverythingSort::DateCreatedDescending);

   everything.query()?;

   let num_results = everything.get_num_results();

   assert!(num_results > 0);

   for (i, path) in everything.full_path_iter().flatten().enumerate() {
       let size = everything.get_result_size(i as u32)?;
       let date_created = everything.get_result_created_date(i as u32)?;
       println!("{}: {} {} {}", i, path, size, date_created);
   }

   Ok(())
}

依赖项

~0.3–1.1MB
~24K SLoC