gpt4 book ai didi

linux - Windows 和 Linux 下路径名的语法分别是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:00 26 4
gpt4 key购买 nike

我正在考虑编写一个程序来检查路径名是否有效。

  1. Windows 下路径名(包括相对路径名)的语法是什么?我用谷歌搜索了一段时间,只找到了有关无效路径名个别情况的错误报告。

  2. 对于 Linux 有同样的问题吗?虽然我大部分时间都使用Linux,但我不知道是否有一个定义它的标准文档。 POSIX?

谢谢。

最佳答案

Windows 有多个层(NT、Win32、Posix/WSL)和多种路径类型,但您可能指的是 DOS/Win32 类型,并且该主题本身就足够复杂。

你有基本的 DOS 路径:

  • 绝对:d:\dir\subdir\file
  • 当前目录相对:file.\subdir\file..\otherfile
  • 根相对/当前驱动器:\dir\subdir\file
  • 相对驱动器:d:file
  • “上游”:d:\dir\..\otherdir\file
  • UNC:\\服务器\共享\文件
  • 驱动器/卷:d:

还有一些特殊的保留名称,例如 NULCONAUXCOM1

Windows NT 增加了更多的复杂性:

  • 命名流:d:\dir\subdir\file:stream
  • 转义/长路径:\\?\d:\file
  • 转义的 UNC:\\?\UNC\server\share\file
  • 设备路径:\\.\PhysicalDisk1
  • Volume GUID path : \\?\卷{26a21bda-a627-11d7-9931-806e6f6e6963}\

如果您在更高的 shell 级别上操作,您还需要处理一些其他类型:

  • shell 协议(protocol):shell:SendTo
  • Shell 命名空间:::{someGUID}\::{anotherGUID}

大多数函数也接受 / 作为路径分隔符。即使像 d:f:s 这样疯狂的东西(文件 f 中的流 s 相对于驱动器 d 上的当前目录)也应该被认为是有效的。

参见MSDN了解更多信息。

另一方面,Linux 仅将 / 和空字节 (\0) 视为特殊字节,并允许您在路径中使用换行符等。如果您正在处理 shell 脚本中的路径,则通常可以使用 IFS。阅读 this rant for more information .

关于linux - Windows 和 Linux 下路径名的语法分别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43524356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com