大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

今天在开发的时候,碰到一个问题,比如说从服务器获取到路径前缀,然后拼接一个路径后缀。

在显示的时候会出现一些问题,比如说换行,或者斜杠反斜杠识别错误这种。

遇到这种情况,可以进行字符串匹配,然后对路径进行判断,看是否前后有空格,给定的路径是否是一个正确的路径

这种方式虽然也可以解决,但是总是感觉有些繁琐,查看了一些资料发现了一个API,感觉挺好用的,分享给大家。

二、Path.Combine (合并两个路径字符串)方法

2-1、重载方法

先来看重载方法:

【C#】C# IO类路径合并、本地路径、拼接路径Path.Combine_开发语言


参数有:path1、path2、path3、path4、string[] paths。

2-2、函数说明

以下面这个函数进行说明:

​public static string Combine(string path1, string path2);​

连接两个路径字符串。

详细介绍:

如果path1没有一个有效的结束分隔符,在合并之前DirectorySeparatorChar将被追加到path1。

DirectorySeparatorChar 介绍

提供平台特定的字符,该字符用于在反映分层文件系统组织的路径字符串中分隔目录级别。

该字段的值在 Unix 上为斜杠 /,在 Windows 和 Macintosh 操作系统上为反斜杠 \ 。

2-3、函数工作原理

如果 path1 不是一个驱动器引用(即不是"C:“或"D:”)
而且不是以 DirectorySeparatorChar中定义的有效分隔符结束,则在串联前将 DirectorySeparatorChar 追加到 path1 中。

如果 path2 不包括根(例如,如果 path2 没有以分隔符或驱动器规格起始)
则结果是两个路径的串联,具有介于其间的分隔符。如果 path2 包括根,则返回 path2。

由于有空白时不进行参数分析,如果 path2 为" c:\ ",则将其追加到 path1,而不是仅返回 path2。

不是目录和文件名的所有无效字符都被 Combine 方法解释为不可接受的,因为您可以将这些字符用于搜索通配符。

例如,尽管 Path.Combine(“c:\”, “*.txt”) 可能是无效的(如果您要根据它创建一个文件),但它作为搜索字符串是有效的。因此 Combine 方法可以成功解释它。

2-4、函数的使用

接下来就来详细的看一下这个函数怎么使用。

正常合并两个路径字符串

using UnityEngine;
using System.IO;

public class PathTest : MonoBehaviour
{
void Start()
{
string path1 = @"C:\\Test";
string path2 = "123.txt";
Debug.Log(Path.Combine(path1,path2));
}
}

运行结果:

【C#】C# IO类路径合并、本地路径、拼接路径Path.Combine_c#_02


** 如果其中一个参数为空字符串,返回另一个参数所指定的路径。**

using UnityEngine;
using System.IO;

public class PathTest : MonoBehaviour
{
void Start()
{
string path1 = "";
string path2 = "123.txt";
Debug.Log(Path.Combine(path1,path2));
}
}

运行结果:

【C#】C# IO类路径合并、本地路径、拼接路径Path.Combine_3d_03


如果 path2 包含绝对路径,则返回 path2

using UnityEngine;
using System.IO;

public class PathTest : MonoBehaviour
{
void Start()
{
string path1 = @"C:\\Test";
string path2 = @"D:\\123.txt";
Debug.Log(Path.Combine(path1,path2));
}
}

运行结果:

【C#】C# IO类路径合并、本地路径、拼接路径Path.Combine_开发语言_04

如果path2 以 \ 或 / 开头,则返回 path2。

using UnityEngine;
using System.IO;

public class PathTest : MonoBehaviour
{
void Start()
{
string path1 = @"C:\\Test";
string path2 = "\\123.txt";
Debug.Log(Path.Combine(path1,path2));
}
}

运行结果:

【C#】C# IO类路径合并、本地路径、拼接路径Path.Combine_3d_05

三、后记

你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

【C#】C# IO类路径合并、本地路径、拼接路径Path.Combine_unity_06

博主还有跟多宝藏文章等待你的发掘哦:

专栏

方向

简介

​Unity3D开发小游戏​

小游戏开发教程

分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。

​Unity3D从入门到进阶​

入门

从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。

​Unity3D之UGUI​

UGUI

Unity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。

​Unity3D之读取数据​

文件读取

使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。

​Unity3D之数据集合​

数据集合

数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。

​Unity3D之VR/AR(虚拟仿真)开发​

虚拟仿真

总结博主工作常见的虚拟仿真需求进行案例讲解。

​Unity3D之插件​

插件

主要分享在Unity开发中用到的一些插件使用方法,插件介绍等

​Unity3D之日常开发​

日常记录

主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等

​Unity3D之日常BUG​

日常记录

记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。