C#-计算相对路径
C#-計算相對路徑
???/**////?<summary>
????????///?計算相對路徑
????????///?后者相對前者的路徑。
????????///?</summary>
????????///?<param?name="mainDir">主目錄</param>
????????///?<param?name="fullFilePath">文件的絕對路徑</param>
????????///?<returns>fullFilePath相對于mainDir的路徑</returns>
????????///?<example>
????????///?@"..\..\regedit.exe"?=?GetRelativePath(@"D:\Windows\Web\Wallpaper\",?@"D:\Windows\regedit.exe"?);
????????///?</example>
????????public?static?string?GetRelativePath(string?mainDir,?string?fullFilePath)
????????{
????????????if?(!mainDir.EndsWith("\\"))
????????????{
????????????????mainDir?+=?"\\";?
????????????}
????????????int?intIndex?=?-1,?intPos?=?mainDir.IndexOf('\\');
??????????
????????????while?(intPos?>=?0)
????????????{
????????????????intPos++;
????????????????if?(string.Compare(mainDir,?0,?fullFilePath,?0,?intPos,?true)?!=?0)?break;
????????????????intIndex?=?intPos;
????????????????intPos?=?mainDir.IndexOf('\\',?intPos);
????????????}
??????????????if?(intIndex?>=?0)
????????????{
????????????????fullFilePath?=?fullFilePath.Substring(intIndex);
????????????????intPos?=?mainDir.IndexOf("\\",?intIndex);
????????????????while?(intPos?>=?0)
????????????????{
????????????????????fullFilePath?=?"..\\"?+?fullFilePath;
????????????????????intPos?=?mainDir.IndexOf("\\",?intPos?+?1);
????????????????}
????????????}
???????????
????????????return?fullFilePath;
????????}
???/**////?<summary>
????????///?計算相對路徑
????????///?后者相對前者的路徑。
????????///?</summary>
????????///?<param?name="mainDir">主目錄</param>
????????///?<param?name="fullFilePath">文件的絕對路徑</param>
????????///?<returns>fullFilePath相對于mainDir的路徑</returns>
????????///?<example>
????????///?@"..\..\regedit.exe"?=?GetRelativePath(@"D:\Windows\Web\Wallpaper\",?@"D:\Windows\regedit.exe"?);
????????///?</example>
????????public?static?string?GetRelativePath(string?mainDir,?string?fullFilePath)
????????{
????????????if?(!mainDir.EndsWith("\\"))
????????????{
????????????????mainDir?+=?"\\";?
????????????}
????????????int?intIndex?=?-1,?intPos?=?mainDir.IndexOf('\\');
??????????
????????????while?(intPos?>=?0)
????????????{
????????????????intPos++;
????????????????if?(string.Compare(mainDir,?0,?fullFilePath,?0,?intPos,?true)?!=?0)?break;
????????????????intIndex?=?intPos;
????????????????intPos?=?mainDir.IndexOf('\\',?intPos);
????????????}
??????????????if?(intIndex?>=?0)
????????????{
????????????????fullFilePath?=?fullFilePath.Substring(intIndex);
????????????????intPos?=?mainDir.IndexOf("\\",?intIndex);
????????????????while?(intPos?>=?0)
????????????????{
????????????????????fullFilePath?=?"..\\"?+?fullFilePath;
????????????????????intPos?=?mainDir.IndexOf("\\",?intPos?+?1);
????????????????}
????????????}
???????????
????????????return?fullFilePath;
????????}
轉載于:https://www.cnblogs.com/ClarkChan/archive/2008/07/20/1247134.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: Expression Studio 3在
- 下一篇: chrome扩展之3:一步步跟我学开发一