最近写了个工作上要用到的工具,要和同事共用,需要储存各种文件路径,为了保证我们的文件结构相同,且减少文件错乱的问题,在储存文件路径的时候决定用相对路径来实现,就像VS里生成路径一样,随便把项目考到哪个地方都能保持正常运行。
但是网上一搜,悲催了,找了半天没有好到这方面的参考代码或思路什么的,所以自己想了一个傻瓜办法。
算法思路就是:举个列子,比如有参考路径:F:\\A\B\C\D\E
需要转换为相对路径的源路径:F:\\A\B\C-1\C-2\C-3\C-4
先找到两个路径共同的父路径strParent = F:\\A\B,然后把参考路径除了父路径外路径C\D\E转换为相对路径strRelative = ..\..\..\
然后把源路径的strParent替换为strRelative就可以了,很简单吧
下面是源码
/// <summary>
/// 绝对路径转换为相对路径
/// </summary>
/// <param name="strReferencePath">参考路径</param>
/// <param name="strSourcePath">需要转换的路径</param>
/// <returns>返回转换后的路径</returns>
private string ChangeToRelativePath(string strReferencePath, str