【7.28 大更新】PopDrop:不切窗口,随时取用多个文件夹里的最近文件

  • 间距问题我这里也调好了,增加了配置参数,可自定义。
  • 深色模式是我还没触碰的领域。
  • 拖文件进文件夹,拖网络文件进文件夹,我之前也想了一下,感觉有点复杂。你已经实现了文件夹的,看来是可行的,网络的我也试试。
1 个赞

v0.7.2

新功能

1. 噪声文件过滤(NoiseFilter)

  • 自动隐藏 Office/WPS 锁定文件(~$*.docx 等)、LibreOffice 锁定文件(.~lock.*.odt#
  • 自动隐藏目录元数据(desktop.iniThumbs.dbehthumbs.db.DS_Store
  • 自动隐藏 Access 关联文件(*.laccdb*.accdb*.ldb*.mdb
  • 自动隐藏 AutoCAD 关联文件(*.dwl*.dwl2*.dwg
  • 可按 Hidden、System、Temporary 文件属性过滤
  • 可过滤未完成下载文件(*.crdownload*.part*.download
  • 支持自定义文件名通配规则(*?,不区分大小写)
  • 每个监控来源可选择跟随全局、启用或禁用,并添加来源专属规则
  • 固定项目始终优先显示,不受噪声过滤影响
  • 所有规则只影响 PopDrop 显示,不会删除、移动或修改真实文件
  • 设置界面中可查看本次隐藏的文件数量和详情

2. 启动器文件夹(Launcher)

  • 加入配置界面

3. 来源级噪声过滤配置

  • 每个来源可独立设置噪声过滤模式:跟随全局、启用、禁用
  • 可添加来源专属的附加忽略规则

4. PopDrop 精简右键菜单

  • 普通右击文件或文件夹:打开 PopDrop 自研菜单,包含打开、应用选择、Explorer 定位、复制、复制/移动到和固定项操作
  • Shift + 右击Shift + F10:保留完整 Windows Shell 系统右键菜单(包括第三方扩展)
  • 右击已选中的多选项目保留整个选择集合

5. 配置软件打开文件

open-with-software

  • 右键菜单"用 XX 打开"按扩展名匹配已配置的 .exe 程序
  • 顶层最多 5 个,其余放入"更多已配置应用…"二级菜单

6. 复制文件与路径

  • Ctrl + C:复制文件对象到剪贴板,可直接粘贴到资源管理器
  • Ctrl + Shift + C:复制完整路径文本(多选时每行一条)
  • 文件列表支持原生 Windows 剪贴板操作

7. 在文件资源管理器中显示

  • Ctrl + Enter 或右键菜单:打开父目录并选中文件
  • 支持多选同一父目录,一次定位全部选中项目

8. 复制到与移动到

  • 使用 Windows Shell IFileOperation 原生文件操作,支持重名冲突、文件夹合并、权限提升、进度和取消
  • 常用位置最多 5 个、最近目标最多 3 个的二级菜单
  • 移动已固定文件时自动更新固定路径

9. 三种子文件夹显示范围

  • FilesOnly:仅显示当前目录中的文件
  • FilesAndFolders:显示当前目录文件和直接子文件夹
  • RecursiveFiles:递归显示全部后代文件,与根目录文件一起排序
  • IncludeSubfolders 配置自动兼容迁移

10. 文件夹排序时间

  • DirectoryModified:文件夹自身修改时间(默认)
  • LatestContent:后代文件最新修改时间,后台扫描 + 缓存,跳过重解析点

11. 可选单击打开文件

  • 全局可选择单击或双击打开普通文件
  • 每个监控来源可以继承全局或单独覆盖
  • 单击只在无修饰键、未拖拽的左键释放时触发
  • 文件夹始终保持双击打开
  • 固定项和最近文件使用全局设置

12. 原生 UI 设置界面

setting-ui

  • 托盘菜单"PopDrop 设置…"打开图形化设置窗口
  • 四页标签:常规、文件来源、文件操作、过滤与显示
  • 所有编辑在草稿中进行,取消不写磁盘
  • 保存时验证 + 备份 + 原子写入,失败自动回滚

13. 全局排除文件夹名称

  • 默认排除 .git.svn.hgnode_modules__pycache__
  • 排除名称不区分大小写,适用于所有来源
  • 来源内允许路径可覆盖排除

14. 缩略图布局配置

  • ThumbnailHorizontalGap:水平间距(0~128,默认 24)
  • ThumbnailVerticalGap:垂直间距(0~128,默认 4)
  • ThumbnailTextLines:标签文字行数(1=单行省略,2=双行)

优化

  • 缩略图策略默认改为 Full,允许现场生成缩略图,图片文件预览更完整
  • 置顶模式实时切换:面板顶部按钮可在 temporaryalways_on_top 之间切换,立即保存
  • Esc 隐藏面板可配置开关
  • 临时模式下拖放文件后保持窗口可见
  • 配置写入使用临时文件原子替换,减少异常退出造成的配置损坏
  • 新增 --self-test 自测模式,覆盖噪声过滤和 Launcher 配置测试
  • 扫描缓存升级至 v3/v4,新增噪声过滤和固定项信息
  • 配置文件 [NoiseFilter] 节注释自动维护,升级后即可查阅

配置变动

  • 配置版本升级至 ConfigVersion=11
  • 新增 [NoiseFilter] 配置节:EnabledHideHiddenHideSystemHideTemporaryAttributeHideIncompleteDownloadsCustomPatternCountCustomPatternNNN
  • 新增 [SourceIgnore:名称] 配置节,支持来源级噪声过滤规则
  • 新增 NoiseFilterMode 来源配置项(Inherit / Enabled / Disabled
  • 新增 Mode 来源配置项(Files / Launcher
  • ThumbnailPolicy 默认值从 Fast 改为 Full
  • ConfigDocument 引擎新增 EnsureCommentBlock()InsertSection() 方法
  • [NoiseFilter] 归入区域 1(General 区域),[SourceIgnore:名称] 归入区域 6(扫描规则区域)

下载

  • 解压后保持 PopDrop.execonfig.ini 在同一目录,双击运行即可
  • F2 呼出面板,找到文件,拖走,关掉

@alalei199 @dog @huaingabc @xiaokonglong

2 个赞

已基本完美了.

另外, 我请教一下:
自定义菜单打开APP里, 如何实现 winrar或7zip 压缩或解压缩呢?

压缩和解压需要执行命令,目前还做不到,只能打开。考虑到配置命令有一定使用门槛,所以暂未开发

如果添加的程序,支持参数的话, 系统自带的右键菜单基本上就不需要了.

:ok_hand:,有道理,那就加上。

额 我不喜欢自定义右键菜单。可以仿照claunch做成可选项。
自定义右键和原生右键分别通过右键或Ctrl + 右键调用

get,但是原生右键菜单又慢选项又多,你有什么特别的用法?

有管理右键菜单的工具,删掉不用的呗

1 个赞

好勤奋的up主,一会没看就已经更新了多个版本。我修改个der。直接伸手 :rofl:

我用TC,不用自带资管。。。所以用不上这个。

TC 很强,我自己也是 Directory Opus 的重度用户。

PopDrop 解决的是另一个场景:随时取用多个重要文件夹里的最近文件。

长期使用 Directory Opus,我发现真正高频使用的,往往就是每个文件夹最近新增或修改的十几个文件。把这些文件集中在一个随叫随到的小面板里,能少走不少路径。

比如同事在飞书里问你要一个文件。常规操作是打开 TC、找到/切换到该文件夹标签、找到文件,再拖进飞书。用 PopDrop,不用离开飞书,按 F2,拖进去,完成。

它和 TC 是互补关系,不是替代关系。重度文件管理、整理用 TC,快捷取用、操作文件用 PopDrop。

3 个赞

楼主这效率太牛了,厉害。非常感谢。

1 个赞

v0.7 → v0.9 主要更新

PopDrop 从一个“快速拿取最近文件”的小面板,逐渐变成了一个可以接收文件、按项目整理文件,并调用常用工具处理文件的临时工作台。

仍然是需要时出现,用完就走,只是能做的事情更多了。

v0.8.0:文件不仅能拖出去,也能直接拖进来

拖入文件

现在可以把本地文件直接拖进 PopDrop。

拖拽时,目标分组会实时高亮。PopDrop 会根据文件来源自动选择复制或移动,也可以按住 CtrlShift 指定操作。

除了本地文件,还支持接收来自网页、聊天软件等位置的图片、虚拟文件和公开下载链接。较大的文件会在后台传输,不必让主面板一直留在屏幕上。

新增的“下载任务面板”可以查看进度、取消任务、重新下载失败的链接,或者直接打开目标文件夹。

文件写入也更谨慎:下载或接收完成之前会先保存为临时文件,成功后再正式写入;如果目标位置已经有同名文件,不会悄悄覆盖。

v0.8.6~v0.8.8:网页图片更清晰,删除文件可以反悔

从网页拖拽图片时,有些网页会同时提供缩略图和原图。PopDrop 现在会比较图片的实际尺寸,自动保留更清晰的版本,清理重复的小图。

这套判断会统一用于不同来源的图片,无论图片来自网页、聊天软件、剪贴板还是本地拖拽,都会尽量避免留下“一张图保存好几份,最后还留错了缩略图”的情况。

现在也可以选中文件后按 Delete 删除。文件会进入 Windows 回收站,支持批量操作,不会在回收站失败后改成永久删除。

v0.9.0:多工作区、右键菜单和工具动作

不同项目,可以使用不同的工作区

工作区切换

每个工作区都可以保存自己的来源文件夹和固定项。

比如工作、个人项目和临时任务可以各用一套配置。切换项目时,只要从主面板切换工作区,不必把所有目录和文件都挤在一起。

旧版本的配置会自动迁移,不需要重新设置。

右键菜单可以按自己的习惯选择

现在可以选择默认使用 PopDrop 的快捷菜单,或者 Windows 系统右键菜单。

需要临时切换时,按住 Shift 即可反转,不必反复进入设置。

一个应用,可以配置多种文件动作

右键菜单

以前,一个应用主要作为文件的“打开方式”;现在,同一个应用还可以提供多个工具动作。

例如,同一批文件既可以逐个交给应用处理,也可以一次性全部传入。动作参数可以引用文件路径、所在文件夹、日期、文件大小等信息,方便根据自己的工作流程配置不同用途。


@xiaokonglong
@dog

3 个赞

对我需求来说,popdrop只差最后一步就究极完美了。
支持网盘这类文件的拖拽,
这种软件里的文件拖过来其实只是个触发器,触发了网盘的下载功能,并不能接管它的下载,这种不知道怎么弄。

这个需求我测试了几款网盘,卡点在网盘本身。

像阿里云盘这类客户端,界面里的文件无法直接拖出。PopDrop 即使增加网盘下载能力,也拿不到有效的文件信息,拖拽任务自然无法建立。

少数网盘可能兼容,覆盖面很有限,稳定性也会受到官方策略影响。改成手动粘贴下载链接,又失去了 PopDrop 的操作优势,体验上恐怕也不比官方客户端更省事。

所以目前没有针对网盘做专项适配。这个方向并非完全不可行,前提是找到一种跨网盘、稳定获取下载任务的方式。

1 个赞

AI这么写的,可以支持所有网盘,你看看能不能用上:

#Requires AutoHotkey v2.0

; 1. 默认绑定到系统的“下载”文件夹
global DownloadDir := A_MyDocuments "\..\Downloads"

; 2. 初始化 OLE COM 环境(网盘拖放核心)
DllCall("ole32\OleInitialize", "Ptr", 0)

; 3. 创建 UI 原型窗口
MyExplorer := Gui("+AlwaysOnTop +Resize", "迷你资源管理器 (网盘下载区)")
MyExplorer.SetFont("s9", "Microsoft YaHei")

MyExplorer.Add("Text", "x10 y12", "下载路径:")
PathEdit := MyExplorer.Add("Edit", "x70 y8 w280 ReadOnly", DownloadDir)
BtnRefresh := MyExplorer.Add("Button", "x360 y7 w60 h25", "刷新")

; 4. 使用 ActiveX 控件嵌入 Windows 原生 Shell 文件容器
; 这会在 UI 内部直接嵌入一个渲染好的本地文件夹视图(绝不会空白)
wbControl := MyExplorer.Add("ActiveX", "x10 y40 w410 h300", "Shell.Explorer")
global pWB := wbControl.Value

MyExplorer.Show("w430 h350")

; 导航到 Downloads 目录
NavToDownloads()

BtnRefresh.OnEvent("Click", (*) => NavToDownloads())
MyExplorer.OnEvent("Size", OnGuiSize)

; 导航与刷新函数
NavToDownloads() {
    global pWB, DownloadDir
    try {
        ; 将嵌入控件指向本地 Downloads 目录
        pWB.Navigate("file:///" DownloadDir)
    }
}

; 窗口拉伸时自动调整嵌入控件大小
OnGuiSize(GuiObj, MinMax, Width, Height) {
    if (MinMax = -1)
        return
    PathEdit.Move(,, Width - 150)
    BtnRefresh.Move(Width - 70)
    wbControl.Move(,, Width - 20, Height - 50)
}

个人觉得网盘文件拖出这个需求必要性不是很大,PopDrop的主要定位是“取用”,花大量的投入去实现这个体验提升不大的需求个人觉得没必要,可能还会影响原本软件的稳定性。(网盘直接下载到指定文件夹,PopDrop再监控这个文件夹路径即可实现类似效果呀)

当然,如果这个需求是我低估了的话,建议另开个偏下载器功能的新软件。

(而且我印象中,论坛里本来就有以悬浮和拖拽为主要操作方式的下载器软件的帖子,网盘这个需求更适配那个)

1 个赞

我将桌面添加到工作区作为启动器文件夹时,显示数量设置了显示全部,但是还是显示不全,开始我以为是有些图标属性里添加了‘–no-sandbox --disable-gpu --disable-software-rasterizer’的原因,但是我检查时发现有些正常没添加这个的图片也显示不出来

哈哈 也是。

我上一层发的脚本稍微改一下也能满足我的要求。

没必要非得挤一个软件里。