所有文件路径是否都遵循不同编程语言的相同原则/约定

Do all file paths follow the same principles / conventions across different programming languages

我发现开始编程时遇到的最大挑战之一是掌握文件路径。例如,当您引用目录结构中同一级别的文件夹中的路径时,您将看到:

/folder/style.css 或

folder/style.css 等等

当您引用不同的文件时,所有编程语言的原则是否相同?是否有任何命名约定或陷阱需要注意?

为什么当您向上移动时有时会看到一个点“./”,有时会看到双点“../”?

我似乎找不到任何关于此的教程,我猜这可能是计算机科学课程中的标准内容之一,但很难获得具体信息,如果你'重新自学/自学。

艾米丽。

Are the principles the same across all programming languages when you're referencing different files, and are there any naming conventions or gotchas to look out for?

基本原理通常依赖于操作系统,而不依赖于编程语言。例如,在 Windows 上你可能会得到一个 \ 而不是 /,并且每个 'drive'.

都有一个 'current directory'

一些编程语言通过让 windows 表现得像世界其他地方一样来为您解决这个问题。 OS X 和 Linux 大部分相同(但在字符编码等方面存在差异)。

Why is it sometimes you'll see a single dot './' and sometimes a double dot '../' when you're moving up a level?

单点always当前目录,双点always 指的是大多数主要操作系统上的 parent 目录,包括 Windows、Linux、BSD 和 OS X.

我发现它们在语言方面非常相似(javascript、html、php、android、c#、css)我已经处理过,有一些关于转义字符和相对路径的警告,这些字符和相对路径似乎有所不同……但总的来说,它们几乎是完全一致的……

我知道这不是一个完整的答案,但完整的答案可能是一本书...

不同语言的文件路径约定不尽相同。

像 C 这样的旧语言根本就没有约定。他们只是公开了来自 OS 的 API。例如,类 Unix OSes 上的绝对路径可能是 /usr/chewy/stuff.txt,而在 Windows 上则可能是 C:\Users\chewy\stuff.txt.

他们这样做主要有两个原因:首先,这样做更容易,其次(也是更重要的)是让用户在使用用该语言编写的程序。 unix 用户不会期望需要输入 Windows 样式路径,类似地,Windows 用户会期望文件路径看起来像 Windows 文件路径。

在一些较新的语言中,默认文件路径是 Unix 风格 /a/b/c。它们仍然支持 Windows 样式路径,但用户也可以在 Windows 上输入 unix 样式路径并且它仍然有效(在大多数情况下 / 映射到 C:\ 除非明确更改为F:/ 会映射到 F:\).

在一些甚至更新的语言中走得更远。他们对文件路径使用 URI 语法,所以在内部你会看到 file://home/chewy/stuff.txt。这几乎同时从两个方向发展:基于网络的软件,如网络浏览器和 Plan 9 操作系统(诚然,Plan 9 也可能受到网络开发的影响)。

相对路径

语言如何处理相对路径取决于它支持的约定类型。对于没有约定的语言,相对路径的工作方式与它在 OS 上的工作方式相同。因此,对于 Windows,您需要学习 Windows 文件路径约定,对于 Unix,您需要学习 unix 文件路径约定。

对于在 unix 样式文件路径上进行内部标准化的语言,它们也会实现 unix 文件路径约定。但是,并非所有语言都实现所有标准 unix 约定。例如,Tcl 支持 ~ 来引用用户的主目录,但大多数其他语言不支持。

对于使用 URI 语法的语言,您需要了解 URI 如何处理相对路径。它实际上包含在定义 URI 语法的 RFC 中:https://www.rfc-editor.org/rfc/rfc3986

常见约定

.. 文件在 Unixen、Windows 甚至 URI 语法中指的是父目录。因此,无论使用何种语言或 OS.

,您都会经常看到这种情况

路径开头的.表示Unix当前工作目录,Windows。在 URI 语法中,. 只是从路径中删除。

进一步阅读

我强烈建议您了解 OS 的文件路径约定。十年前,我没想到会有人问这个问题,因为如果他们可以访问网站,那么他们就会知道如何浏览文件系统。这几天很少看到Windows用户访问cmd.com(还叫cmd.com吗?)

此外,我还建议学习 URI 语法,因为这是我经常看到初学者误解的事情之一。