go语言调用everything的SDK接口
介绍
- 本项目会将官方dll编译到可执行程序中,运行时无需考虑dll问题。
- 根据官方介绍,使用SDK前需要运行
everything
程序。 - 执行
go build -tag ASCII
时编译ascii
相关接口,否则编译unicode
接口。 - 可以参考
examples/search.go
示例代码。 - 本项目主要是我用来学习window下go调用dll的方法,包含传参和返回值处理。
- 相关代码大部分都是研究go源码得到的启发。
- 特别注意,我的代码里面有几个使用了
go1.17
才有的特性。
下面是示例代码:
copypackage main
import (
"fmt"
"os"
"github.com/jan-bar/es"
)
func main() {
if len(os.Args) < 2 {
fmt.Printf("usage:%s test.txt\n", os.Args[0])
return
}
err := es.EverythingSetSearch(os.Args[1])
if err != nil {
panic(err)
}
err = es.EverythingSetMax(5)
if err != nil {
panic(err)
}
// 设置好需要查询的内容,不然后续遍历时可能报错
err = es.EverythingSetRequestFlags(es.EverythingRequestFileName | es.EverythingRequestPath |
es.EverythingRequestDateCreated | es.EverythingRequestDateModified | es.EverythingRequestDateAccessed |
es.EverythingRequestSize)
if err != nil {
panic(err)
}
// 定好排序规则
err = es.EverythingSetSort(es.EverythingSortDateModifiedAscending)
if err != nil {
panic(err)
}
// 开始查询
fmt.Println("EverythingQuery:", es.EverythingQuery(true))
// 得到查询结果个数
num, err := es.EverythingGetNumResults()
fmt.Println("EverythingGetNumResults", num, err)
for i := uint32(0); i < num; i++ {
fmt.Println("---------------------------------------------------")
s, err := es.EverythingGetResultSize(i)
fmt.Printf("FileSize:[%d],%v\n", s, err)
p, err := es.EverythingGetResultFullPathName(i)
fmt.Printf("FullPathName:[%s],%v\n", p, err)
p, err = es.EverythingGetResultFileName(i)
fmt.Printf("FileName:[%s],%v\n", p, err)
t, err := es.EverythingGetResultDateCreated(i)
fmt.Printf("DateCreated:[%s],%v\n", t, err)
t, err = es.EverythingGetResultDateModified(i)
fmt.Printf("DateModified:[%s],%v\n", t, err)
t, err = es.EverythingGetResultDateAccessed(i)
fmt.Printf("DateAccessed:[%s],%v\n", t, err)
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~