介绍

官方SDK地址

  1. 本项目会将官方dll编译到可执行程序中,运行时无需考虑dll问题。
  2. 根据官方介绍,使用SDK前需要运行everything程序。
  3. 执行go build -tag ASCII时编译ascii相关接口,否则编译unicode接口。
  4. 可以参考examples/search.go示例代码。
  5. 本项目主要是我用来学习window下go调用dll的方法,包含传参和返回值处理。
  6. 相关代码大部分都是研究go源码得到的启发。
  7. 特别注意,我的代码里面有几个使用了go1.17才有的特性。

下面是示例代码:

package 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)
}
}

最新文章

  1. Consul Windows 安装
  2. 编译libjpeg库
  3. WCF服务部署IIS
  4. AngularJs-指令1
  5. xcode 真机调试 failed to get the task for process xxx
  6. Android init进程概述
  7. php笔记05:http协议中防盗链技术
  8. springMVC能做什么,做j2ee时候要考虑什么
  9. C#中消息的工作流程
  10. 手动编译安装nginx
  11. 【原创】大叔经验分享(5)oozie提交spark任务如何添加依赖
  12. WPF自定义控件(四)の自定义控件
  13. git 在某个分支下创建新分支
  14. cocos2d-x 2.1.4 项目配置过程
  15. Java开发笔记(九十一)IO流处理简单的数据压缩
  16. 音视频编解码: YUV采样格式中的YUV444,YUV422,YUV420理解
  17. 笔记二:python编码详解
  18. 高级PHP工程师所应该具备的专业素养
  19. Entity Framework优化一:引发了“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常
  20. bzoj 1588 平衡树 splay

热门文章

  1. 免杀mimikatz
  2. Genymotion模拟器安装ARM架构编译应用失败解决方案
  3. 开源ERP和其它ERP软件比较
  4. MySQL Replication Thread States
  5. MVVM窗体show的弹窗事件
  6. MySQL学习02(操作数据库)
  7. 拦截器HandlerInterceptorAdapter的postHandle和afterCompletion无法获取response返回值问题
  8. Java横向技术 网络【笔记】
  9. 黑马JVM教程——自学笔记(三)
  10. Unity遮罩之Mask、RectMask2D与Sprite Mask适用场景分析