从电子邮件下载 PDF:“/”被替换

从电子邮件下载 PDF:“/”被替换

首先,这是我第一次使用超级用户。我很确定 SO 不是问这个问题的合适地方,而且这不仅限于 Mac,因为它与电子邮件有关,所以我决定在这里问。如果需要迁移,请告诉我。

在通过电子邮件发送文件时,我注意到每个斜线都被替换了。我使用的是 Gmail,在附加名为 的文件时1/2.pdf,Gmail 显示1:2.pdf在此处输入图片描述

在给自己发邮件进行测试并下载 pdf 后,它被下载为在此处输入图片描述 有人知道为什么会发生这种情况吗?

答案1

这是两个轻微地不同的问题,但实际上它们都与电子邮件无关。


在通过电子邮件发送文件时,我注意到每个斜线都被替换了。我使用的是 Gmail,在附加名为 的文件时1/2.pdf,Gmail 显示1:2.pdf在此处输入图片描述

这是 macOS (OS X) 的一个怪癖。

通常,斜线/路径分隔符在 OS X(和其他操作系统)中,因此无法在文件名中使用。如果您真的尝试创建一个名为 的文件1/2.pdf,那么它实际上会被解释为“文件2.pdf夹内的文件1”。这也适用于 Linux、Windows、Android 以及几乎所有其他操作系统。

但最初的 MacOS(OS X 之前)使用斜线:作为路径分隔符,而不是斜线——这曾是允许在名称中使用。这仍然会影响旧的 HFS+ 格式的磁盘(其中可能包含带斜杠的文件名)以及使用旧工具包构建的程序。

因此,Finder 仍然允许您使用/名称,但在底层,:当跨越到基于 Unix 的 macOS 核心时,它会被翻译成。(并翻译成再次如果/它进入 HFS+ 磁盘...)

例如,使用ls终端中的命令,您会看到您的文件实际上是/Users/Ryan/1:2.pdf(而不是/Users/Ryan/1/2.pdf)。并且不同的应用程序可能会将同一个文件视为1:2.pdf或,1/2.pdf具体取决于它们的编写方式。

相关文章:


在给自己发邮件进行测试并下载 pdf 后,它被下载为在此处输入图片描述

这是 Windows 浏览器故意为之,因为两者都不 /在 Windows 上,文件名中也:不允许使用它们——它们都充当不同事物的分隔符。

在 Windows 中,斜线/与通常的反斜线一起用作替代路径分隔符\- 例如,路径C:\Users\Ryan可以写为C:/Users/RyanC:\Users/Ryan

同时,冒号:既用作驱动器号指示符,又用作替代流分隔符(后者类似于 macOS 上的“xattrs”和“resource forks”)。

如果某个程序实际上尝试创建一个名为 的文件1:2.pdf,Windows 会将其解释为“2.pdf磁盘上的文件1:”(是的,Windows 驱动器“字母”也可以是数字);而如果该程序使用Downloads/1:2.pdf,则会将其解释为“目录Downloads,文件名1,备用流2.pdf”。

因此,Windows 上的浏览​​器在下载文件时必须替换这两个字符(以及其他一些字符,如?*或)。>

有关的:

相关内容