2016-10-24 2 views
-3

У меня есть два разных пути:Как объединить два различных пути

C:\Project\v4.0\Tool\Custom\CustomCompanyNames\Template\file\file.xml C:\Destination\New\Place\Bin\Debug\output

Мне нужен способ два значения Достаньте из двух различных путей

Ожидаемый Путь:

C:\Destination\New\Place\Bin\Debug\output\CustomCompanyNames\file\file.xml

Как я могу это решить?

  • Пользовательская папка исправить
  • Все каталоги после таможни имеют разные названия

Моего решения плохо запрограммировано:

  • Пользовательских ист первого путем
  • назначения второго путь

    private void test() 
        { 
        string result = destination; 
    
        string[] custom = customs.Split('\\'); 
    
        foreach (var s in custom) 
        { 
    
         if(s.Contains("custom") || result.Contains("custom")) 
         { 
          if(s.Contains("templates")) break; 
          result = Path.Combine(result, s); 
         } 
        } 
    } 
    
+1

Вы пробовали что-нибудь? После разделения верхнего пути вы можете использовать 'Path.Combine' –

+0

Я попытался разделить путь и объединить код. Но моя проблема заключается в том, чтобы обрезать каталог \ Template – mimu1011

+0

Никто не говорит, сделайте это для меня. Я отредактировал свое решение @GiladGreen – mimu1011

ответ

1

Вместо Split тин использовать путь IndexOf найти Custom часть, а затем Substring от него.

string path1 = @"C:\Project\v4.0\Tool\Custom\CustomCompanyNames\Template\file\file.xml"; 
string path2 = @"C:\Destination\New\Place\Bin\Debug\output"; 

string splitter = @"Custom\"; 
string desiredSection = path1.Substring(path1.IndexOf(splitter) + splitter.Length); 

string output = Path.Combine(path2, desiredSection); 
+1

Спасибо. Код выглядит так просто :), но вывод C: \\ Destination \\ New \\ Place \\ Bin \\ Debug \\ output \\ CustomCompanyNames \\ Template \\ file \\ file.xml Как я могу обрезать Шаблон \\? – mimu1011

+0

@Mo_Code - это следующий вопрос ... Мой ответ по-прежнему решил исходный вопрос о том, как присоединиться к двум путям. Если вы хотите удалить часть «Шаблон», вы можете использовать '.Replace()' –