# Path

**Path** 对象表示一个文件或文件夹路径。许多对象具有返回 **Path** 的属性 - 例如，[**Tab**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/tab.zh)**.path** 返回一个标签页中的当前文件夹作为 **Path** 对象。可以使用 [**DOpus**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dopus.zh)**.**[FSUtil](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/fsutil.zh)**.NewPath** 方法从字符串（或另一个 **Path**）创建一个新的 **Path** 对象。

| 属性名称         | 返回类型                                                                                                                           | 描述                                                                                                                                                                               |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| *<默认值>*      | *字符串*                                                                                                                          | 以字符串形式返回完整路径。                                                                                                                                                                    |
| components   | *整数*                                                                                                                           | 返回路径中组件的数量。                                                                                                                                                                      |
| disks        | [**Vector**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh)*:整数* | 返回一个包含表示此路径所在的物理磁盘驱动器或驱动器的 *整数* 的 [**Vector**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh)。                     |
| drive        | *整数*                                                                                                                           | 返回路径引用的驱动器号 (1=A, 2=B 等) 或 0（如果路径未指定驱动器）。您还可以通过修改此值来更改路径的驱动器号（同时保持后面的路径组件不变）。                                                                                                    |
| ext          | *字符串*                                                                                                                          | <p>返回路径的文件名扩展名（从最后一个 <strong>.</strong> 到字符串结尾的子字符串）。此方法不检查路径是否实际上引用了文件。</p><p>您还可以通过设置此属性来更改路径的文件扩展名（并将扩展名完全删除，将其设置为一个空字符串）。</p>                                                |
| ext\_m       | *字符串*                                                                                                                          | <p>返回路径的文件名扩展名，考虑多部分扩展名。例如，<strong>ext</strong> 可能返回 ".rar"，而 <strong>ext\_m</strong> 将返回 ".part1.rar"。</p><p>您不能使用 <strong>ext\_m</strong> 更改扩展名，只能使用 <strong>ext</strong>。</p> |
| filepart     | *字符串*                                                                                                                          | 返回路径的文件名部分（最后一个组件）。                                                                                                                                                              |
| longpath     | \*对象:\***Path**                                                                                                                | 如果此对象表示一个短路径名，则此属性返回其“长”等效项。                                                                                                                                                     |
| pathpart     | *字符串*                                                                                                                          | 返回路径减去最后一个组件。                                                                                                                                                                    |
| shortpath    | \*对象:\***Path**                                                                                                                | 如果此对象表示一个长路径名，则此属性返回其“短”等效项（如果存在）。请注意，Windows 10 默认情况下禁用了短路径。                                                                                                                    |
| stem         | *字符串*                                                                                                                          | 返回路径的文件名根（即 **filepart** 减去 **ext**）。                                                                                                                                            |
| stem\_m      | *字符串*                                                                                                                          | 返回文件名根，同时考虑多部分扩展名。例如，**stem** 可能返回 "pictures.part1"，而 **stem\_m** 将返回 "pictures"。                                                                                                |
| test\_parent | *布尔值*                                                                                                                          | 如果对 **Parent** 方法的调用会成功，则返回 **True**。                                                                                                                                            |
| test\_root   | *布尔值*                                                                                                                          | 如果对 **Root** 方法的调用会成功，则返回 **True**。                                                                                                                                              |

| 方法名称         | **参数**                                                                                                                  | 返回类型                                                                                                                            | 描述                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------ | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Add          | <p><字符串:name><br>或 <<a href="vector.zh"><strong>Vector</strong></a><em>:字符串></em></p>                                   | *无*                                                                                                                             | 将指定名称添加到路径（它将成为最后一个组件）。除了字符串之外，您还可以传递一个包含字符串的 [**Vector**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh)，并且向量中的所有项目都将添加到路径。                                                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Normalize    | *无*                                                                                                                     | *无*                                                                                                                             | <p>通过以下操作对路径进行规范化：</p><ul><li>将所有正斜杠转换为反斜杠（或反之亦然，用于 URL）</li><li>将重复的斜杠折叠成单个斜杠（除非需要）</li></ul><p><strong>Normalize</strong> 在为 <strong>Path</strong> 对象分配新的路径字符串时会自动调用，因此您通常不需要手动调用它。</p>                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Parent       | *无*                                                                                                                     | *布尔值*                                                                                                                           | 删除路径的最后一个组件。如果路径没有有效的父级，则返回 **False**。                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ReplaceStart | <p><字符串:old><br><字符串:new><br><布尔值:wholepath></p>                                                                        | *布尔值*                                                                                                                           | 将路径的开头与 "old" 字符串进行比较，如果匹配则用 "new" 字符串替换它。匹配是在路径组件级别执行的 - 例如，"old" 字符串为 "C:\Foo" 将匹配路径 "C:\Foo\Bar" 但不匹配 "C:\FooBar"。如果可选的 *wholepath* 参数设置为 **True**，则整个路径必须匹配，而不仅仅是开头。如果字符串与路径匹配，则返回 **True**，否则返回 **False**。                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Resolve      | <字符串:flags>                                                                                                             | *无*                                                                                                                             | <p>将指定的路径字符串解析为其实际文件系统路径，并支持转换：</p><ul><li>将 <a href="../../../readme.zh-1/readme.zh/readme.zh/aliases.zh"><strong>文件夹别名</strong></a> 转换为它们指向的真实路径。</li><li>将 <strong>库</strong> 和 <strong>文件集合</strong> 项目转换为它们在文件系统中的真实路径。</li><li>应用程序路径，以 <strong>{apppath | </strong><em><strong>appname</strong></em><strong>}</strong> 的形式。</li><li>环境变量。</li><li>或者，可以将 <strong>联接</strong> 和 <strong>符号链接</strong> 解析为它们的目標。<strong>Path</strong> 对象将在原地修改。</li></ul><p>传递不需要解析的路径是安全的；路径将保持原样，因此您可以对东西进行调用，而无需事先检查它是否需要。</p><p>将当前目录传递给外部软件的脚本通常应该首先对路径调用 Resolve，否则它们可能会将类似 <em>/desktop</em> 的别名传递给无法理解它们的软件。</p><p>可选的 <strong>flags</strong> 字符串可以包含以下字母（不区分大小写）：</p><p>请注意，<a href="dopus.zh"><strong>DOpus</strong></a><strong>.</strong><a href="fsutil.zh"><strong>FSUtil</strong></a> 具有类似的 <strong>Resolve</strong> 方法，它接受一个字符串输入并返回一个新的 <strong>Path</strong> 对象。</p> |
|              |                                                                                                                         |                                                                                                                                 |                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **j**        | 将 **j**unctions 和符号链接解析为其目标文件夹                                                                                          |                                                                                                                                 |                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Root         | *无*                                                                                                                     | *布尔值*                                                                                                                           | 剥离除路径的第一个组件之外的所有组件。如果路径已在根目录中，则返回 **False**。                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Set          | <p><字符串:path><br>或 <<strong>Path</strong>:path><br>或 <<a href="vector.zh"><strong>Vector</strong></a><em>:字符串></em></p> | *无*                                                                                                                             | <p>将 <strong>Path</strong> 对象表示的路径设置为指定的 <em>字符串</em>。</p><p>您还可以将一个 <strong>Path</strong> 对象设置为另一个 <strong>Path</strong> 对象的值。如果您传递一个包含字符串的 <a href="vector.zh"><strong>Vector</strong></a>，路径将从向量中的项目构建。</p>                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Split        | <p><整数:first><br><整数:count></p>                                                                                         | [**Vector**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh)*:字符串* | 返回一个包含表示路径组件的字符串的 [**Vector**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh)。例如，如果路径是 **C:\Foo\Bar**，则向量将包含三个项目 - "C:\\, "Foo" 和 "Bar"。默认情况下，将返回路径的所有组件，但您也可以选择提供第一个组件的索引以及要返回的组件数量。            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ToUNC        | *无*                                                                                                                     | *布尔值*                                                                                                                           | 如果路径以映射的网络驱动器的驱动器号开头，则它将被转换为路径的 UNC 版本。例如，"X:\Test" 可能映射到 "\Server\Share\Test"。如果路径被修改，则返回 **True**；如果未修改，则返回 **False**。                                                                                                                                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
