E不小心

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  38 随笔 :: 0 文章 :: 77 评论 :: 18万 阅读

这个的方法有很多吧。

1. 用PInvok调用Windows API的PathRelativePathTo

2. 自行处理字符串

3. 利用Uri

前两种就不说了,觉得有点麻烦,想了解的同学,自已,百度Google一下吧。

第3种,也没啥好说的,直接Code。

复制代码
 1         public static string GetRelativePath(string filespec, string folder)
 2         {
 3             const string directorySeparatorChar = "\\";
 4             Uri pathUri = new Uri(filespec);
 5 
 6             if (!folder.EndsWith(directorySeparatorChar))
 7             {
 8                 folder += directorySeparatorChar;
 9             }
10             Uri folderUri = new Uri(folder);
11             return Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace("/", directorySeparatorChar));
12         }
复制代码

因为这个我是在WinRT里用的,在WinRT里,没有 Path.DirectorySeparatorChar,你在其它环境下使用Path.DirectorySeparatorChar 替换 "\\"。



 

posted on   E不小心  阅读(6666)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示