• 【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之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
    Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
    Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
    Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。
    Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
    Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
    Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。
  • 相关阅读:
    成人高考的入学考试有哪几门-大专升本科的那种
    Linux下进程相关概念详解
    C++没落了?学习C++没有前途了?从业者给你揭晓答案
    HMI/SCADA软件架构和编程
    长文本翻译-免费长文本翻译软件
    图解LeetCode——1608. 特殊数组的特征值(难度:简单)
    更安全、更清晰、更高效——《C++ Core Guidelines解析》
    C++ 多线程 condition变量
    [附源码]Python计算机毕业设计Django网咖管理系统
    陪诊系统搭建部署和功能,让就医更便捷和舒适
  • 原文地址:https://blog.csdn.net/q764424567/article/details/126649544