Path 关于路径的最佳实践是什么?

Path 关于路径的最佳实践是什么?,path,pseudocode,Path,Pseudocode,我已经被这个话题弄糊涂了好几次,并且被它咬了一口。我查阅了许多最佳实践文章和定义,但在我看来,路径并没有准确定义,什么是绝对路径和相对路径似乎因上下文而异 问题的简短版本:在代码中始终携带(并转换为)绝对路径?但一定要把它们写成相对的。 作为一个业余爱好者,由于同时在后端和前端工作,我经常切换上下文,并且我还没有制定出一致的规则,如果涉及到路径,我还没有创建可移植的代码 从本质上讲,似乎存在不同类型的路径绝对路径和相对路径。但我经常遇到第三种类型,对我来说,它可能被命名为绝对相对路径。我面临的挑

我已经被这个话题弄糊涂了好几次,并且被它咬了一口。我查阅了许多最佳实践文章和定义,但在我看来,路径并没有准确定义,什么是绝对路径和相对路径似乎因上下文而异

问题的简短版本:在代码中始终携带(并转换为)绝对路径?但一定要把它们写成相对的。

作为一个业余爱好者,由于同时在后端和前端工作,我经常切换上下文,并且我还没有制定出一致的规则,如果涉及到路径,我还没有创建可移植的代码

从本质上讲,似乎存在不同类型的路径绝对路径相对路径。但我经常遇到第三种类型,对我来说,它可能被命名为绝对相对路径。我面临的挑战是知道我应该存储哪一个,以及可能出现的并发症

这是一条绝对路径:

/home/me/css/style.css
但不是在窗户上。上述操作在Windows上会做什么?必须是这样的:

C:/home/me/css/style.css
在Linux上工作的绝对路径指的是使用Windows,这是完全不同的。它变为相对于当前分区

/home/me/css/style.css
变成

C:/home/me/css/style.css
在这种情况下,这是正确的,但如果实际应用程序运行在不同的分区上,则可能不正确。因此,如果需要可移植性,则使用绝对路径“Unix风格”是有问题的

这是指向目录的绝对路径:

/home/me/css/
/home/me/css
css/
但这也是目录的绝对路径:

/home/me/css/
/home/me/css
css/
因此,添加另一个斜杠纯粹是向编写者传递附加信息,是吗

这是一条相对路径:

css/style.css
和一个目录:

/home/me/css/
/home/me/css
css/
如果在HTML文档中使用,则这是绝对相对路径:

<a href="/css/style.css">Link</a>
应用程序中的所有路径都是相对的,因此我们在伪代码中调用类似于
create\u dir('output')
。现在,我们可能认为将应用程序移动到其他地方并让用户有机会自己提供输出目录是一个好主意。突然,所有的路径定义都将中断。它们变成
create\u dir(绝对($output\u dir)+“output”)

我发现这种计算在某种程度上变得非常漫长和复杂。特别是如果仍然存在一些与应用程序相关的文件或目录,如模板或类似文件。但它们将来也可能会移动,所以我发现自己编写的代码类似于
copy\u dir(cwd()+'templates',absolute($output\u dir)+'output')

但是等等,当前的工作目录不一定是应用程序所在的位置,特别是在类unix系统上。 如果应用程序不知道绝对路径是绝对路径还是绝对路径,那么绝对路径如何生成绝对路径?我们必须假设后者,因此调用
absolute()
不是一个好主意,而是
cwd()+$output\u dir
。谢天谢地,
cwd()
通常返回一个已经绝对的路径。只有当用户提供的路径实际上是相对的,而不是绝对的,我们才能这样做。谢天谢地,标准库有办法解决这个问题,但这种幼稚的方法会失败,我们最终会得到类似“C:/C:/css”的东西

假设用户从未提供我们可以使用的绝对路径:

copy_dir(绝对(app_dir())+“output”,cwd()+$output_dir)

然后我对自己说,好吧,我每次处理这些文件都必须这样做,所以为什么不做一次并随身携带
$abs\u output\u dir
?突然,我遇到了一个问题,我必须将绝对相对路径输出到HTML文档中,并且我不能使用
$abs\u output\u dir
,因为我必须以某种方式剪切绝对部分,使其相对于用户提供的
$output\u dir
。此时,我的思维通常会停止,我要么对每条路径进行硬编码,要么随身携带
$output\u dir
$abs\u output\u dir
$rel\u abs\u output\u dir
以及
$abs\u app\u dir
,并努力使所有内容保持最新


因此,只携带绝对路径的想法似乎是一个好主意,除非我们必须将相对路径或绝对相对路径输出到文件。程序员通常就是这样做的吗?

请用您正在使用的编程语言标记您的问题,或者至少提到您正在使用的编程语言。代码应该是伪代码来说明我的观点。我的问题并不局限于一种编程语言。在StackOverflow这样的网站上,伪代码往往是有问题的,因为使用不同编程语言的人可能不熟悉使用的符号(如美元符号)。在每个人都理解符号的课堂环境中,这更合适。我总是尽可能存储和操作相对路径。存储绝对路径很难移动应用程序。只需使用相对路径即可。在我的经历中省去了很多麻烦。