能在 windows 运行的查找文件的程序?(目前倾向 GoLang)

2023-09-01 10:27:29 +08:00
 miaeLKK

PS:今天主题很少啊,本来想自己再查查,看没什么主题就和大家讨论下。让我去谷歌等无意义的回复的可以拜拜了

我想写个查找文件的程序,主要在 windows 运行,要能查找 doc 、docx 格式(包括文档中的表格)、xls 、xlsx 、pdf 和普通文本

windows 的话,是不是只能 exe 、bat 了?了解到 java 、python 都要打包环境,觉得可能写出来会比较大?(如果说的不对请指正)所以想用 GoLang 去写

GoLang 的话先是找到 unidoc ,但是收费的,放弃;然后找到个这个

https://pkg.go.dev/code.sajari.com/docconv

研究一阵没弄明白,按照指引还是报错。好像是下载后引用,没找到下载地方,有人用过吗?或者有什么好的方法?

1924 次点击
所在节点    程序员
20 条回复
VensonEEE
2023-09-01 10:30:38 +08:00
你这要解析内容 ,简单点还是 Python 或者 WPF 吧
dobelee
2023-09-01 10:34:10 +08:00
python 打包干嘛,直接跑就行。
golang 文档这方面是弱势项,不建议。
miaeLKK
2023-09-01 10:49:18 +08:00
@dobelee 不得装环境吗?我是想着别人没环境的也能用,不过好像确实 go 的库不多,而且混乱
dq19871123
2023-09-01 10:55:19 +08:00
一个作弊一点的方案是.net framework 2.0/3.5 ,Windows 自带了
不过我不理解,打包 runtime 也不是什么麻烦的事,何必纠结这件事
jones2000
2023-09-01 11:01:48 +08:00
每个文件格式都有对应的格式文档, 把文件读内存(_wfopen_s ....) ,自己解析不就完事了。一个一个文件格式对接。嫌麻烦就直接读文件上传给后台解析。
Mithril
2023-09-01 11:15:30 +08:00
不管你用什么语言,都需要 runtime 环境。不需要的无非是操作系统自带了,或者 CPU 自带了,比如汇编这种。但就是汇编你也需要个文件头。

Windows 的话,就 C++和.NET Framework 有自带的。你可以用这俩写。如果你想加快搜索速度,比如快到像 Everything 那样,那你无论如何也要用 Windows API ,那些都是 C++的。所以最简单的就是你用 C++做。但你要是不会用 QT 或者更古老的 MFC 这类东西,做 GUI 就比较麻烦。那就不如用.NET Framework ,GUI 的话 WPF 或者 WinForm 都行。虽然都是很老的技术了,但你做个小程序用用是没问题的。

其它的 GoLang 或者.NET Core/7 ,都可以做成 SelfContained 。就是把 runtime 一起打包进去。这种情况下你如果用 Java 也没啥差别,无非是把 JRE 一起打包,新版本的还可以 trim 。
但是 Java ,GoLang 这种做 GUI 更是离谱。.NET Core/7 你可以选择 Avalonia ,或者直接用 WebView2 套网页。WebView2 不需要打包浏览器本身,直接调用的系统组件,比 Electron 好一些。

既然你需要解析文档,那就先找个能用好用的文档解析库。再看他这库是什么语言你就用什么语言就行。大部分语言都能在 Windows 上运行的。做个简陋的 GUI 也都不是什么问题。
aiqinxuancai
2023-09-01 11:18:32 +08:00
Everything 了解一下
oldboy627
2023-09-01 11:29:05 +08:00
Everything meets your requirement.
cslive
2023-09-01 11:30:20 +08:00
Everything +1
Frjpa
2023-09-01 11:48:08 +08:00
everything 不满足要求么?
loading
2023-09-01 11:53:10 +08:00
everything ,有一个 golang 的调用包,我还提交过一丁点代码,哈哈。
NoOneNoBody
2023-09-01 12:05:42 +08:00
还可以 powershell
只是,谁干得过 everything 啊
Alias4ck
2023-09-01 12:17:19 +08:00
第一时间我想到了 find 的替代品 fd 不过是 rust 写的
Alias4ck
2023-09-01 12:26:43 +08:00
噢你还要查找文本内容啊 那配合 go 写的 fzf 完美了 不过 doc 、docx 、xls 、xlsx 这些都是 OLE file format 你得自己写解析器了 pdf 就更加麻烦了 可能里面有图片、表格等或者 latex 公式,就我所了解的 pdf 解析工具来看 都不太行
不过最近 meta 开源了一个识别论文 pdf 的模型和工具 https://github.com/facebookresearch/nougat
busterian
2023-09-01 12:35:49 +08:00
powergrep
manasheep
2023-09-01 13:34:34 +08:00
AnyTXT Searcher 应该可以实现
shijingshijing
2023-09-01 16:32:07 +08:00
@NoOneNoBody 口气别太大哟,试试 Agent Ransack ,Everything 依赖索引的,而且理论上是有可能有遗漏的,Agent Ransack 不会,它只会老老实实去查。
someday3
2023-09-01 16:49:46 +08:00
@manasheep 这位老兄推荐的这个确实可以,我用过。anytxt

我觉得没必要造轮子,而且 anytxt 还有 ocr 的功能,对扫描版的 pdf 也能搜索。尤其这种软件很庞大的,从底层的扫描,索引构建,查询到用户界面,完全可以给 anytxt 提补丁。
ikas
2023-09-02 22:14:28 +08:00
body007
2023-09-04 11:51:19 +08:00
everything 的 golang 库,https://github.com/jan-bar/es

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/969999

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX