2012-02-25 42 views

回答

1

这应该做你想做的。

 string firstDirectory = "c:\\my\\dir"; 
     string secondDirectory = "c:\\my\\other\\file.ext"; 


     var first = firstDirectory.Split('\\'); 
     var second = secondDirectory.Split('\\'); 

     var directoriesToGoBack = first.Except(second); 
     var directoriesToGoForward = second.Except(first); 

     StringBuilder directory = new StringBuilder(); 

     bool initial = true; 
     foreach (string s in directoriesToGoBack) 
     { 
      if (initial) 
      { 
       initial = false; 
      } else 
      { 
       directory.Append('\\'); 
      } 
      directory.Append(".."); 

     } 

     foreach (string s in directoriesToGoForward) 
     { 
      directory.Append('\\'); 
      directory.Append(s); 
     } 
     Console.WriteLine(directory.ToString()); 
+0

谢谢 - 似乎将owrk,如果没有两个目录在同一路径具有相同的名称。如果有人经过全面测试的解决方案,我将不胜感激。 – ChrisJJ 2012-02-26 22:02:54

相关问题