介绍

官方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)
}
}

go语言调用everything的SDK接口的更多相关文章

  1. 史上最严管控,Android P非SDK接口管控特性解读及适配

    导读 在 Android P 版本中,谷歌加入了非 SDK 接口使用限制,无论是通过调用.反射还是JNI等方式,开发者都无法对非 SDK 接口进行访问,此接口的滥用将会带来严重的系统兼容性问题. 针对 ...

  2. 关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10

    关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10 转载请标明出处,否则死全家.选择[复制链接]即可得到出处. (* ...

  3. 跨语言调用Hangfire定时作业服务

    跨语言调用Hangfire定时作业服务 背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服 ...

  4. Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结

    Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结 1.1. 边缘检测的基本方法Canny最常用了1 1.2. 编写matlab边缘检测代码, ...

  5. Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用

    目录: 一.什么是Thrift? 1) Thrift内部框架一瞥 2) 支持的数据传输格式.数据传输方式和服务模型 3) Thrift IDL 二.Thrift的官方网站在哪里? 三.在哪里下载?需要 ...

  6. C++ 跨语言调用 Java

    C++ 跨语言调用 Java Java JDK 提供了 JNI 接口供 C/C++ 程序调用 Java 编译后的类与方法,主要依赖于头文件(jni.h) 和 动态库(jvm.so/jvm.dll),由 ...

  7. Go 语言中的方法,接口和嵌入类型

    https://studygolang.com/articles/1113 概述 在 Go 语言中,如果一个结构体和一个嵌入字段同时实现了相同的接口会发生什么呢?我们猜一下,可能有两个问题: 编译器会 ...

  8. Java跨语言调用,使用JNA访问Java外部接口

    1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即 ...

  9. 使用C语言调用mysql数据库编程实战以及技巧

    今天编写使用C语言调用mysql数据库编程实战以及技巧.为其它IT同行作为參考,当然有错误能够留言,共同学习. 一.mysql数据库的C语言经常使用接口API 1.首先当然是链接数据库mysql_re ...

随机推荐

  1. Java流程控制01——用户交互Scanner

    用户交互Scanner sacnner对象 之前的语法并没有实现程序与人的交互.java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 基本语法:  S ...

  2. python3.7安装和pycharm安装教程. 以及pycharm的破解教程

    前言: 供对python初学者查阅, pycharm破解教程参阅了: https://blog.csdn.net/u014044812/article/details/78727496 1. 安装py ...

  3. wps查找替换使用通配符一个实例

    我现在需要打印一些古诗,很多很多.没有排版. 但发现即使弄个两分栏,还是很不舒服. 于是我就想把古诗之间弄个换行. Ctrl+F  打开查找替换 上框输入  ([0-9])*([0-9])*(.) 下 ...

  4. GIT·全局配置文件及项目配置文件

    阅文时长 | 0.03分钟 字数统计 | 48.8字符 主要内容 | 1.引言&背景 2.声明与参考资料 『GIT·全局配置文件及项目配置文件』 编写人 | SCscHero 编写时间 | 2 ...

  5. Linux中配置ftp传输

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  6. tomcat及springboot实现Filter、Servlet、Listener

    tomcat实现: 核心类org.apache.catalina.startup.ContextConfig //支持注解 see:org.apache.catalina.deploy.WebXml ...

  7. Redis-01-基础

    基本概念 1 基本概念 redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value数据库(非关系性数据库) redis运维的责任 1.保证服务不挂 2.备份数据 ...

  8. Golang语言系列-01-Go语言简介和变量

    Go语言简介 Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pi ...

  9. 服务启动shell脚本

    #!/bin/sh JarDir=`pwd` do_start() { echo "pandora-login start ..." nohup java -jar -Xmn256 ...

  10. DVWA-全等级XSS(反射型、存储型)

    DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...