Everything

everything的下载 https://www.voidtools.com/zh-cn/

在下载页面往下拉,我们还需要 Everything的命令行接口工具 ES.exe

ES.exe的使用

在官网中也有介绍这个工具如何使用以及一些案例,https://www.voidtools.com/zh-cn/support/everything/command_line_interface/

举个例子 查找F盘中后缀为zip的压缩包
打开命令行界面,进入es.exe的目录下,(我这里的es.exe放在D:\MyEverything目录),输入查找命令: *es.exe F: .zip

查找结果如下:

注意:这个es.exe工具,需要先打开Everything软件,才可以使用!

C#调用Everything查找文件

大体思路:C#调用命令行,控制es.exe的运行和查询内容,最后再读取命令行运行结果即可。

EverythingHelper类

代码如下,需要 使用 using System.Diagnostics; 命名空间

 public class EverythingHelper{private static string CmdPath = @"C:\Windows\System32\cmd.exe";public static void RunCmd(string cmd, out string output){//说明:不管命令是否成功均执行exit命令,//否则当调用ReadToEnd()方法时,会处于假死状态cmd = cmd.Trim().TrimEnd('&') + "&exit";output = string.Empty;using (Process p = new Process()){p.StartInfo.FileName = CmdPath;//es.exe的目录下运行命令行p.StartInfo.WorkingDirectory = @"D:\MyEverything";//是否使用操作系统flash启动p.StartInfo.UseShellExecute = false;//接受来自调用程序的输入信息p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输出信息p.StartInfo.RedirectStandardOutput = true;//重定向标准错误输出p.StartInfo.RedirectStandardError = true;//不显示程序窗口p.StartInfo.CreateNoWindow = true;//启动程序p.Start();//向cmd窗口写入命令p.StandardInput.WriteLine(cmd);p.StandardInput.AutoFlush = true;//获取cmd窗口的输出信息output = p.StandardOutput.ReadToEnd();//等待程序执行完退出进程p.WaitForExit();p.Close();}}}

UI界面

效果图如下,在F盘中查找后缀为zip且文件名字带有VS的文件。搜索功能具体实现的代码:


/// <summary>/// 搜索/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void BtnSearch_Click(object sender, EventArgs e){string cmdStr = string.Empty;if(tbDir.Text.Length > 0){//路径cmdStr += tbDir.Text + "  ";}if(tbKeyWord.Text.Length > 0){//关键词cmdStr += tbKeyWord.Text + "  ";}if(tbSuffix.Text.Length > 0){//后缀cmdStr +=   "*." + tbSuffix.Text;}if(cmdStr.Length < 1){return;}string resultStr;EverythingHelper.RunCmd("es.exe " + cmdStr, out resultStr);if(resultStr.Length > 0){tbOutput.Text = "";//记录到初步的完整路径List<string> AllPath = new List<string>();//分割得到的字符串SpitPath(ref resultStr, ref AllPath);foreach(string path in AllPath){tbOutput.Text += path + System.Environment.NewLine;}}}/// <summary>/// 处理Evething得到的数据/// </summary>/// <param name="reslutPath">cmd命令得到的字符串</param>/// <param name="AllPath"></param>private static void SpitPath(ref string reslutPath, ref List<string> AllPath){string tempStr = string.Empty;//分割命令行的字符串string[] tempstr = reslutPath.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);for (int i = 0; i < tempstr.Length; i++){if (!File.Exists(tempstr[i])){//不是文件路径则继续往下判断continue;}else{if (tempStr.Equals(tempstr[i])){//路径重复continue;}else{//记录文件的路径tempStr = tempstr[i];AllPath.Add(tempstr[i]);}}}}

小结

Everything小巧便捷且功能搜索功能文件功能强大,还有很多不同条件的查找功能。感谢开发者给我们免费使用!最后,附上该Demo的完整工程。https://download.csdn.net/download/weixin_40314351/86399754?spm=1001.2014.3001.5503

C# 调用Everything查找文件相关推荐

  1. linux下Qt调用C++库文件(.so)程序实现

    文章目录 主要内容 一.编程环境及实现方法 二.项目实现 1.创建项目 2.导入库文件 三.项目中遇到的问题 总结 主要内容 如标题所示,在linux下使用qtcreator创建项目调用C++库文件, ...

  2. linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统

    这段时间在学习python,接触到了网络编程中的socket这块,加上自己在用的Linux服务器都是原生支持python的,于是乎有了个做文件传输功能程序的想法. 毕竟python语言中,有下载功能的 ...

  3. python打开方式错误_浅谈python 调用open()打开文件时路径出错的原因

    昨晚搞鼓了一下python的open()打开文件 代码如下 def main(): infile =open("C:\Users\Spirit\Desktop\bc.txt",'r ...

  4. 使用glob()查找文件

    大部分PHP函数的函数名从字面上都可以理解其用途,但是当你看到 glob() 的时候,你也许并不知道这是用来做什么的,其实glob()和scandir() 一样,可以用来查找文件,请看下面的用法:摘自 ...

  5. 用 _findfirst 和 _findnext 查找文件

    一.这两个函数均在io.h里面. 二.首先了解一下一个文件结构体: struct _finddata_t {        unsigned       attrib;        time_t  ...

  6. 【linux find命令】在目录中查找文件并删除文件

    文章目录 find命令格式 一.按文件名搜索 二.按文件大小搜索 三.按修改时间搜索 四.按文件类型搜索 五.按权限搜索 六.按所有者和所属组搜索 七.逻辑运算符 八.其他选项 find命令格式 fi ...

  7. bat递归查找指定文件_教你在电脑上用批处理脚本全盘查找文件

    0x00- 效果预览: 0x01 - 前言: 说起文件查找大家肯定都会,那么你试过用批处理脚本来查找一个文件在哪里吗? 今天就让我们来写一个能够全盘查找文件的批处理脚本吧! 0x02 - 准备: 设备 ...

  8. python open找不到文件的原因_浅谈python 调用open()打开文件时路径出错的原因

    昨晚搞鼓了一下python的open()打开文件 代码如下 def main(): infile =open("C:\Users\Spirit\Desktop\bc.txt",'r ...

  9. linux怎么在目录下查找文件,linux find-在指定目录下查找文件

    find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件.并且将查找到的子目录和文件全部进 ...

最新文章

  1. 用ASP.NET上传图片并生成带版权信息的缩略图
  2. 安装的 Python 版本太多互相干扰?pyenv 建议了解一下。
  3. CMMI过程域-MA度量和分析
  4. yolov4网络结构_重磅更新!YoLov4最新论文!解读YoLov4框架!
  5. ERC20 Short Address Attack
  6. Qt for Android环境配置
  7. 银泰上云 打造“从-1到0再到1”数字化成长逻辑
  8. 设计素材模板|春节要来了,素材准备好了么?
  9. AnnotationTransactionAttributeSource is only available on Java 1.5 and higher
  10. Facts have proved that this is more popular than his article
  11. npm 报错 : npm ERR! Maximum call stack size exceeded
  12. 面向对象编程 和 面向接口编程
  13. WPF的DataGrid的某个列绑定数据的三种方法(Binding、Converter、DataTrigger)
  14. 两个集合的交集 java版本
  15. 利用模版元编程将传统冒泡排序性能提升两倍以上
  16. DCDC和LDO的区别
  17. 用形态学及HSV完成车牌照识别
  18. 人民币与美元汇率兑换程序
  19. 数字图像处理——红眼去除(Python)
  20. Android webview和HTML的JS交互

热门文章

  1. matlab水果图片,matlab数字图像处理-----------------水果识别
  2. com.mysql.jdbc.exceptions.MySQLSyntaxErrorException
  3. Packet(信息包)
  4. 【前端指南】f5与ctrl+f5的区别
  5. vim 安装插件及常用插件
  6. 全国计算机一级等级分布,计算机一级考试分布
  7. linux开机启动任务和定时执行任务
  8. 关于书籍“Composing Programs”1.6.3自定义函数的嵌套定义与非嵌套定义的比较
  9. 我的Hadoop安装流程
  10. 相随与欢-彩色泡泡机的设计与实现