V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shinsekai
V2EX  ›  macOS

macOS 怎么做到文件重命名后应用内最近文件列表也自动重命名的

  •  
  •   shinsekai · 358 天前 · 1551 次点击
    这是一个创建于 358 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如 Mac 版 Office ,最近文件列表可以自动检测文件名改动,而 Windows 下 Office 文件重命名后应用内会提示文件不存在

    12 条回复    2023-12-09 19:23:13 +08:00
    GabrielleBellamy
        2
    GabrielleBellamy  
       358 天前
    这两个原理好像是不一样的。Windows 下的最近文件只是一个快捷方式一样的文件,但是 Mac 上的是那个文件实体。所以以前有人以为 Mac 上的也是快捷方式,全部删除,结果所有文件都给删了……
    imldy
        3
    imldy  
       358 天前 via Android
    有别的唯一 id ?
    dandycheung
        4
    dandycheung  
       358 天前 via Android
    有没可能它就是个软链接……
    dandycheung
        5
    dandycheung  
       358 天前 via Android
    😝,貌似想的不对。
    Bingchunmoli
        6
    Bingchunmoli  
       358 天前 via Android
    @GabrielleBellamy 也不对吧,Windows 删除最近文件也是会删除文件,有单独的清除记录的标签选择
    GabrielleBellamy
        7
    GabrielleBellamy  
       358 天前
    @Bingchunmoli 是吗?以前用的时候,Windows 的一些清理垃圾的软件还会带上一个功能,就是清空最近使用的目录。不过我好久没用了,现在可能系统更新了,最新的 11 是什么情况我不太清楚。至于 macOS 下用户不慎删除文件的事情倒是好像真的发生过。
    geelaw
        8
    geelaw  
       358 天前 via iPhone
    每个软件都可以自己实现最近打开的文件列表,所以这个问题无从回答。我也不太熟悉 macOS ,但可以提供一下 Windows 的视角,两者相通,假设楼主说的是程序不在运行的时候改名。

    1. 存文件路径、建立软链接

    无法处理文件重命名。

    2. 建立硬链接、存标识符(“inode”)

    技术上可行,但是实操不可行,原因有两点:一是并不是所有的文件系统都有硬链接,每个文件系统的标识符格式不同;二是很多软件都会采用写新、删旧、重命名三部曲覆盖文件,这会导致以前的硬链接和新文件脱离关系。

    3. 建立快捷方式(.lnk )

    这是标准解法,因为快捷方式优先考虑原来的路径是否存在,如果不存在则会开始链接追踪,采用文件标识符(“inode”)、文件创建读取修改时间、文件大小、文件路径等一系列匹配方法找到文件的新位置、新名字。

    三部曲覆盖文件会转移文件时间信息(不转移标识符),这叫做“文件系统隧穿”。

    macOS 里快捷方式对应的概念是“替身”,或许也有追踪的功能。
    geelaw
        9
    geelaw  
       358 天前 via iPhone
    另外我对 Windows 下 Office 提示文件不存在存疑,至少跳转列表是可以正确处理文件移动的。
    bao3
        10
    bao3  
       357 天前
    更神奇的是,比如你正在阅读一个 pdf 文件,但同时你可以在 finder 里重命名它,随之 pdf 软件当前在阅读的 pdf 文件的名字也更改了。 以前在 windiws ,会提示文件被打开,无法重命名。
    就想说, 这个特性,真的很棒。
    dode
        11
    dode  
       357 天前
    修改名字,linux 系统底层文件 inode ID 不变
    AlphaRobert
        12
    AlphaRobert  
       357 天前   ❤️ 1
    参见 NSURL 的 bookmark 相关方法。Bookmark 是官方推荐的持久化存储文件地址的途径,每次解析 bookmark 会动态地获取 URL

    @bao3 NSDocument 类会监听文件移动( NSFilePresenter ),然后自动触发窗口标题的更新
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2478 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:16 · PVG 10:16 · LAX 18:16 · JFK 21:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.