V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
pxiphx891
V2EX  ›  分享创造

我开发了一个文件快速搜索软件,欢迎大家试用反馈

  •  
  •   pxiphx891 · 2023-02-21 14:57:30 +08:00 · 2479 次点击
    这是一个创建于 401 天前的主题,其中的信息可能已经有所发展或是发生改变。

    jEverything

    github 地址: https://github.com/aihy/jEverything

    基于 Java Swing 的文件快速搜索软件

    jEverything 索引文件列表,保存到 sqlite 中,搜索时直接搜索 sqlite

    我手边没有 Windows 电脑,因此没有对 Windows 操作系统做适配,部分功能只在 macOS 下可用

    而且 Windows 上已经有Everything了,完全没必要用我这玩意

    功能

    • 使用字符串模糊匹配文件路径
    • 使用空格分隔多个字符串
    • 使用^$标记匹配路径开头或结尾
    • 支持单选、多选拖拽文件到访达移动(直接拖拽)或拷贝(按住 option )
    • 支持按空格快速预览文件(仅支持 macOS )
    • 右键菜单支持打开文件、打开文件所在目录、拷贝文件路径

    备注

    • 只在用户主目录建立索引
    • 索引建立时间与文件数量和磁盘速度有关,大约 1 分钟
    • 需要将/System/Library/CoreServices/JavaLauncher.app加入完全磁盘访问权限

    例子

    • 使用^/Users/xxx/Downloads .pdf$ book可以搜索出/Users/xxx/Downloads目录下,路径中带有book的所有 pdf 文件。

    详细使用指南( macOS )

    1 、将/System/Library/CoreServices/JavaLauncher.app加入完全磁盘访问权限

    打开系统设置->隐私与安全性->完全磁盘访问权限。点击加号,按command + shift + G,输入/System/Library/CoreServices/JavaLauncher.app,按回车并选择打开

    2 、下载jEverything.jar并打开

    3 、等待索引建立完毕

    4 、开始搜索!

    23 条回复    2023-02-25 11:48:59 +08:00
    NouveauNom
        1
    NouveauNom  
       2023-02-21 16:04:43 +08:00
    已 Star
    NouveauNom
        2
    NouveauNom  
       2023-02-21 16:06:13 +08:00
    文件新增后还需要手动重新索引吗
    rock123
        3
    rock123  
       2023-02-21 16:39:39 +08:00
    刚好以前写过一点 swing ,swing 是单线程模型。在子线程中更新 UI 是有问题的,了解下 SwingUtilities.invokeLater 这个方法的使用,在子线程里操作 UI 都用这个包装下,

    还有重建索引按钮,禁用操作是写在新线程内部,可能不会马上执行到,如果不小心连续点击多次,可能会出现多个重新索引线程同时运行
    smallyu
        4
    smallyu  
       2023-02-21 16:47:27 +08:00
    这个比 Finder 自带的搜索快多少?
    pxiphx891
        5
    pxiphx891  
    OP
       2023-02-21 17:10:32 +08:00 via iPhone
    @NouveauNom 需要的
    pxiphx891
        6
    pxiphx891  
    OP
       2023-02-21 17:10:49 +08:00 via iPhone
    @smallyu 快 1000 倍
    pxiphx891
        7
    pxiphx891  
    OP
       2023-02-21 17:12:01 +08:00 via iPhone
    @rock123 感谢指点。另外请教下,从我点击 jar 包到窗口显示出来往往需要等 3 秒甚至更久,怎样可以优化下吗?我想让窗口秒出
    Asimov01
        8
    Asimov01  
       2023-02-21 17:28:39 +08:00
    搜文件确实很快!就是 UI 略简陋,好好包装下可以上架卖钱!
    zengmingyang96
        9
    zengmingyang96  
       2023-02-21 17:47:32 +08:00
    为啥不用 fzf
    pxiphx891
        10
    pxiphx891  
    OP
       2023-02-21 17:56:34 +08:00 via iPhone
    @zengmingyang96 fzf 不能拖拽文件,也不能多选,也不能预览
    pxiphx891
        11
    pxiphx891  
    OP
       2023-02-21 17:57:00 +08:00 via iPhone
    @Asimov01 感谢试用支持!
    rock123
        12
    rock123  
       2023-02-21 19:17:18 +08:00
    @pxiphx891 #7 使用 java -jar -verbose jEverything-1.0.jar 命令运行程序,日志里能看到启动慢是在加载一大堆 swing 相关类,我也不清楚咋优化这里。 试试用其他语言简单做个启动器,显示个 loading 界面,后台启动 java 程序,启动起来后,不要关闭程序,保持后台运行,体验会好一些
    pxiphx891
        13
    pxiphx891  
    OP
       2023-02-21 21:28:17 +08:00
    @rock123 谢谢!我试试
    haoxuexiaoyao
        14
    haoxuexiaoyao  
       2023-02-21 21:51:09 +08:00
    大佬 做一个 raycast 插件呗
    pxiphx891
        15
    pxiphx891  
    OP
       2023-02-21 22:05:30 +08:00
    @haoxuexiaoyao 目前没这个打算...我只用过 Alfred
    devliu1
        16
    devliu1  
       2023-02-21 22:11:46 +08:00
    可以的,不过代码有一些乱

    可以通过 fsevent 更新索引
    crazyweeds
        17
    crazyweeds  
       2023-02-21 22:33:22 +08:00
    以前一直想写的一个东西,但只有想法,没有行动。作者加油。
    546L5LiK6ZOt
        18
    546L5LiK6ZOt  
       2023-02-22 00:14:11 +08:00
    swing 的界面会不会有点丑,为啥不用 javafx 呢
    jaylong
        19
    jaylong  
       2023-02-22 13:35:41 +08:00
    Mac 下一直用免费的 easyfind
    NouveauNom
        20
    NouveauNom  
       2023-02-22 16:21:21 +08:00
    从昨天下午开始索引,然后索引到现在还是有的文件搜不出来,索引也不继续运行了
    https://imgur.com/a/WrLYs9A
    pxiphx891
        21
    pxiphx891  
    OP
       2023-02-22 19:58:40 +08:00
    @NouveauNom 只索引主目录,这个文件在主目录下吗?你的主目录是不是挂载了外置机械硬盘?固态硬盘应该还挺快的
    leonidas10086
        22
    leonidas10086  
       2023-02-23 12:59:41 +08:00
    功能挺好,不过,可以再完善一下,比如做成一个目录结构:
    app/
    bin
    config
    data

    把软件需要的东西都这样放,归纳到一起,目前就一个 jar ,然后 db 在~/.jEverything/db.sqlite
    我刚打开索引建立了一下我就关了,发现这个 db 有 80MB 。

    清理机制不太好。
    NouveauNom
        23
    NouveauNom  
       2023-02-25 11:48:59 +08:00
    @pxiphx891 这个文件是在下载目录,没有挂载外置硬盘。可能是文件太多或者哪个地方卡主了不继续索引了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2618 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 15:52 · PVG 23:52 · LAX 08:52 · JFK 11:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.