【C#】C# IO类路径合并、本地路径、拼接路径Path.Combine
推荐阅读
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
一、前言
今天在开发的时候,碰到一个问题,比如说从服务器获取到路径前缀,然后拼接一个路径后缀。
在显示的时候会出现一些问题,比如说换行,或者斜杠反斜杠识别错误这种。
遇到这种情况,可以进行字符串匹配,然后对路径进行判断,看是否前后有空格,给定的路径是否是一个正确的路径。
这种方式虽然也可以解决,但是总是感觉有些繁琐,查看了一些资料发现了一个API,感觉挺好用的,分享给大家。
二、Path.Combine (合并两个路径字符串)方法
2-1、重载方法
先来看重载方法:
参数有: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));
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
运行结果:
** 如果其中一个参数为空字符串,返回另一个参数所指定的路径。**
using UnityEngine;
using System.IO;
public class PathTest : MonoBehaviour
{
void Start()
{
string path1 = "";
string path2 = "123.txt";
Debug.Log(Path.Combine(path1,path2));
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
运行结果:
如果 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));
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
运行结果:
如果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));
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
运行结果:
三、后记
你的点赞就是对博主的支持,有问题记得留言:
博主主页有联系方式。
博主还有跟多宝藏文章等待你的发掘哦:
专栏 | 方向 | 简介 |
---|---|---|
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和坑,让后来人可以有些参考。 |
文章来源: itmonon.blog.csdn.net,作者:恬静的小魔龙,版权归原作者所有,如需转载,请联系作者。
原文链接:itmonon.blog.csdn.net/article/details/126649544
- 点赞
- 收藏
- 关注作者
评论(0)