关于 Mac 系统 .DS_store 文件的起源

在这里插入图片描述

原文Arno - 2006.10.01

(前排提醒:可以在 .gitignore 中添加 .DS_Store,否则 git 仓库会存储这个和项目无关的文件。)

如果你是 Mac 用户,曾经将文件从 Mac 传输到 Windows,那么可能对 .DS_Store 文件并不陌生。但这个名字是怎么来的呢?

1999 年,我是苹果公司 Mac OS X Finder 的技术负责人。当时,Finder 的代码库已有 8 年历史,已经到了其使用寿命的尽头。对其进行任何更改都需要巨大的工程努力,而且任何更改通常会破坏两三个看似无关的功能。为了 Mac OS X,我们决定从头开始重写 Finder。

工作的一部分涉及分离其用户界面和核心功能(后端)。Finder 的后端负责枚举文件、监视文件系统中的更改、处理元数据,包括图标位置和文件夹设置。在内部,这两个组件被称为 Finder_FE 和 Finder_BE(前端和后端)。

然而,我们很快意识到 Finder 后端在 Finder 之外也会很有用。因此,我们制定了一项计划,希望有一天能将其作为公共 API 提供。由于我之前负责过 Icon Services 和 Navigation Services 的命名,我们决定使用 Desktop Services(当时,我们还考虑将 Finder 重命名为 “Desktop”)。因此,.DS_Store 的名称来源于“Desktop Services Store”。我们在它前面加了一个“.”,以便在 Unix 操作系统(包括 Mac OS)中将其视为不可见文件。

我个人认为这不是一个好名字,我希望我们能用一个更有描述性的名字,但现在说这个已经太迟了 😃

还有一个不幸的 bug 至今仍未修复,它导致创建了过多的 .DS_Store 文件。只有当用户实际调整视图设置或手动设置文件夹中图标的位置时,才应该创建这些文件。不幸的是,事实并非如此,访问文件夹几乎可以肯定 .DS_Store 文件会被创建。

顺便提一下,Finder_BE 也就是 Desktop Services,确实不仅仅被 Finder 使用:Navigation Services(打开/保存对话框)现在也在使用它,尽管在 Mac OS 的最初版本中并没有使用。不过,Desktop Services API 仍未完全发布。

相关推荐

  1. 关于SpringBoot配置文件

    2024-07-09 17:02:12       36 阅读
  2. 关于json文件保存

    2024-07-09 17:02:12       29 阅读
  3. linux系统关系型数据库redis配置文件

    2024-07-09 17:02:12       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 17:02:12       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 17:02:12       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 17:02:12       58 阅读
  4. Python语言-面向对象

    2024-07-09 17:02:12       69 阅读

热门阅读

  1. 用WPF实现的窗体是怎么运行的?

    2024-07-09 17:02:12       26 阅读
  2. Mac OS M3 安装 Docker 并解决芯片不支持问题

    2024-07-09 17:02:12       25 阅读
  3. Fedora 41 移除 Python 2支持

    2024-07-09 17:02:12       26 阅读
  4. 单例模式之懒汉式

    2024-07-09 17:02:12       30 阅读
  5. 代码技巧专题 -- 使用策略模式编写HandleService

    2024-07-09 17:02:12       29 阅读
  6. 汇编学习基础知识【记录】

    2024-07-09 17:02:12       26 阅读
  7. mapper.xml 文件对应的 Dao 接口原理

    2024-07-09 17:02:12       25 阅读
  8. Linux服务监控自动巡检脚本--推送钉钉告警

    2024-07-09 17:02:12       34 阅读