• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#绝对路径拼接相对路径的实例代码

C#绝对路径拼接相对路径的实例代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#相对路径转绝对路径,c#相对路径和绝对路径,c#绝对路径,c#获取绝对路径,c#绝对路径怎么写等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

做项目时发现Path.Combine方法只能支持傻瓜式的目录拼接

输出结果为:

发现并没有按照想像的分辨出相对路径和绝对路径,所以只好用正则匹配了相对路径进行重新拼接,以下方法只支持绝对路径+相对路径的方式

//绝对路径
string absolutePath = @"C:\Program Files\Internet Explorer";
//相对路径
string relativePath = @"..\TestPath\";
//预计拼接结果
string splicingResult = string.Empty;
Console.WriteLine(string.Format("Path.Combine(\"{0}\",\"{1}\")=\"{2}\"", absolutePath, relativePath, Path.Combine(absolutePath, relativePath)));
if (!Path.IsPathRooted(relativePath))
{
    //匹配相对路径,匹配需要向上推的目录层数
    Regex regex = new Regex(@"^\\|([..]+)");
    int backUp = regex.Matches(relativePath).Count;
    List<string> pathes = absolutePath.Split("\\".ToCharArray()).ToList();
    pathes.RemoveRange(pathes.Count - backUp, backUp);
    //匹配文件名,匹配需要附加的目录层数
    regex = new Regex(@"^\\|([a-zA-Z0-9]+)");
    MatchCollection matches = regex.Matches(relativePath);
    foreach (Match match in matches)
    {
        pathes.Add(match.Value);
    }
    //驱动器地址取绝对路径中的驱动器地址
    pathes[0] = Path.GetPathRoot(absolutePath);
    foreach (string p in pathes)
    {
        splicingResult = Path.Combine(splicingResult, p);
    }
}
Console.WriteLine(string.Format("Absolute Path={0}",absolutePath));
Console.WriteLine(string.Format("Relative Path={0}", relativePath));
Console.WriteLine(string.Format("Path.Combine(\"{0}\",\"{1}\")=\"{2}\"", absolutePath, relativePath, splicingResult));
Console.ReadLine();

输出结果:

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 相对路径和绝对路径的写法总结
  • C#实现根据给出的相对地址获取网站绝对地址的方法
  • C#绝对路径拼接相对路径的实例代码

相关文章

  • 2017-05-28C#调用Rar文件及获取Rar返回值的方法
  • 2017-05-28C#导出数据到Excel文件的方法
  • 2017-05-28设计模式速记
  • 2017-05-28c#执行外部命令示例分享
  • 2017-05-28c#继承与多态使用示例
  • 2017-05-28C#反序列化到类的实现方法
  • 2017-05-28C#文件管理类Directory实例分析
  • 2017-05-28C#查找字符串所有排列组合的方法
  • 2017-05-28WinForm限制窗体不能移到屏幕外的方法
  • 2017-05-28C#正则表达式获取下拉菜单(select)的相关属性值

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • WinForm限制窗体不能移到屏幕外的方法
    • C#创建二叉搜索树的方法
    • C#实现可捕获几乎所有键盘鼠标事件的钩子类完整实例
    • C#验证身份证的函数
    • C#实现的图片、string相互转换类分享
    • C#中使用JSON.NET实现JSON、XML相互转换
    • C# Oracle数据库操作类实例详解
    • C#实现简单的井字游戏实例
    • C# 创建文本文件写入读取实现代码
    • C#流类FileStream学习使用笔记

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有