2014-10-19 2 views
-7

Скажем, у меня естьПолучить разницу в 2 Контуры

string path1 = "C:\\apples"; 
string path2 = "C:\apples\blah\meh.jpg"; 

Как я мог бы получить:

string diff = "\blah\meh.jpg"; 

Благодаря

+0

Ofcourse Я могу придумать множество способов, чтобы свернуть на это сам, но я хочу знать способ эффективного использования .NET. – jmasterx

+0

Несколько секунд в google - ['Path.GetFullPath'] (http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath%28v=vs.110%29.aspx) + http : //rosettacode.org/wiki/Find_common_directory_path#C.23 – dbc

+0

@Milo: так что заведите его и перейдите на http://codereview.stackexchange.com/. Если у вас есть проблема, спросите здесь. Если вы его решили, но хотите, чтобы он был рассмотрен: перейдите к CR. Если вы не сделали попытку: сделайте это. –

ответ

0

Если путь действительно содержит двойные слеши (которые, как правило, не бывает):

  1. Заменитьс \ в path1

  2. Заменить path1 с Empty String в path2

    string diff = path2.Replace(path1.Replace(@"\\", @"\"), ""); 
    

В противном случае:

string diff = path2.Replace(path1, ""); 
+0

Как вы справляетесь с двумя «\\» подряд, вы заметили, что мой первый «C: \\ apple» – jmasterx

+0

ваше решение не будет выполнено в определенных случаях. –

+0

@Milo в 'path2' также вы должны использовать" \\». В противном случае это приведет к ошибке: непризнанная пространственная последовательность. –

Смежные вопросы