PS:今天主题很少啊,本来想自己再查查,看没什么主题就和大家讨论下。让我去谷歌等无意义的回复的可以拜拜了
我想写个查找文件的程序,主要在 windows 运行,要能查找 doc 、docx 格式(包括文档中的表格)、xls 、xlsx 、pdf 和普通文本
windows 的话,是不是只能 exe 、bat 了?了解到 java 、python 都要打包环境,觉得可能写出来会比较大?(如果说的不对请指正)所以想用 GoLang 去写
GoLang 的话先是找到 unidoc ,但是收费的,放弃;然后找到个这个
https://pkg.go.dev/code.sajari.com/docconv
研究一阵没弄明白,按照指引还是报错。好像是下载后引用,没找到下载地方,有人用过吗?或者有什么好的方法?
1
VensonEEE 2023-09-01 10:30:38 +08:00
你这要解析内容 ,简单点还是 Python 或者 WPF 吧
|
2
dobelee 2023-09-01 10:34:10 +08:00
python 打包干嘛,直接跑就行。
golang 文档这方面是弱势项,不建议。 |
4
dq19871123 2023-09-01 10:55:19 +08:00
一个作弊一点的方案是.net framework 2.0/3.5 ,Windows 自带了
不过我不理解,打包 runtime 也不是什么麻烦的事,何必纠结这件事 |
5
jones2000 2023-09-01 11:01:48 +08:00
每个文件格式都有对应的格式文档, 把文件读内存(_wfopen_s ....) ,自己解析不就完事了。一个一个文件格式对接。嫌麻烦就直接读文件上传给后台解析。
|
6
Mithril 2023-09-01 11:15:30 +08:00 1
不管你用什么语言,都需要 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 也都不是什么问题。 |
7
aiqinxuancai 2023-09-01 11:18:32 +08:00
Everything 了解一下
|
8
oldboy627 2023-09-01 11:29:05 +08:00
Everything meets your requirement.
|
9
cslive 2023-09-01 11:30:20 +08:00
Everything +1
|
10
Frjpa 2023-09-01 11:48:08 +08:00
everything 不满足要求么?
|
11
loading 2023-09-01 11:53:10 +08:00
everything ,有一个 golang 的调用包,我还提交过一丁点代码,哈哈。
|
12
NoOneNoBody 2023-09-01 12:05:42 +08:00
还可以 powershell
只是,谁干得过 everything 啊 |
13
Alias4ck 2023-09-01 12:17:19 +08:00
第一时间我想到了 find 的替代品 fd 不过是 rust 写的
|
14
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 |
15
busterian 2023-09-01 12:35:49 +08:00
powergrep
|
16
manasheep 2023-09-01 13:34:34 +08:00
AnyTXT Searcher 应该可以实现
|
17
shijingshijing 2023-09-01 16:32:07 +08:00
@NoOneNoBody 口气别太大哟,试试 Agent Ransack ,Everything 依赖索引的,而且理论上是有可能有遗漏的,Agent Ransack 不会,它只会老老实实去查。
|
18
someday3 2023-09-01 16:49:46 +08:00
@manasheep 这位老兄推荐的这个确实可以,我用过。anytxt
我觉得没必要造轮子,而且 anytxt 还有 ocr 的功能,对扫描版的 pdf 也能搜索。尤其这种软件很庞大的,从底层的扫描,索引构建,查询到用户界面,完全可以给 anytxt 提补丁。 |
19
ikas 2023-09-02 22:14:28 +08:00
以前服务端用过 https://tika.apache.org/来做文本抽取,支持格式非常多
不过作为客户端 app 可能消耗比较大 https://cwiki.apache.org/confluence/display/TIKA/API+Bindings+for+Tika |
20
body007 2023-09-04 11:51:19 +08:00
everything 的 golang 库,https://github.com/jan-bar/es
|