Манипуляция строк - получите последнее количество символов "х" - PullRequest
0 голосов
/ 05 декабря 2011

Я создаю приложение Windows Explorer для Интернета с использованием ASP.NET/C# 3.5. У меня есть динамическая строка, которая содержит информацию о моем пути. Эта строка изменяется по мере навигации по приложению. Я пытаюсь получить последнее «имя каталога» в моей строке, например:

C:\Code\AppSettings

Мне нужно вернуть AppSettings

Если строка была:

C:\Code\AppSettings\Backup

Тогда мне нужно будет вернуть Backup

Я недостаточно разбираюсь в манипуляциях со строками, чтобы правильно получить это из динамической строки. Любая помощь или примеры будут великолепны.

Спасибо!

Ответы [ 5 ]

5 голосов
/ 05 декабря 2011

Поскольку вы имеете дело с путями к файлам / каталогам, лучше использовать вспомогательные методы Path Class вместо манипуляции со строками.

Вы можете использовать PathМетод .GetFileName :

var result = Path.GetFileName(@"C:\Code\AppSettings");
// result == "AppSettings"
1 голос
/ 05 декабря 2011
Path.GetFileName(@"C:\Code\AppSettings\Backup")

приводит к Backup

System.IO.Path следует использовать для манипуляций с файлами или каталогами - он предлагает множество других полезных методов.

1 голос
/ 05 декабря 2011

Взгляните на класс Path .В вашем случае Path.GetFileName будет работать.Если нет обратной косой черты.Затем вам нужно сначала убрать эту обратную косую черту.

Или вы можете использовать Substring или String.Split, как предлагали другие.Тем не менее, обратите внимание, что вы должны принять во внимание возможность обратной косой черты, которая может вызвать проблемы с любой из альтернатив.

Под обратной косой чертой я подразумеваю строку типа C:\Code\AppSettings\.

0 голосов
/ 05 декабря 2011

Я думаю, что это должно сделать это:

exampleString = "C:\Code\AppSettings\Backup"  
string[] words = exampleString.Split('\\');

Маркирует строку в соответствии с '\\', т.е. разбивает строку с символом '\' на массив, содержащий C: Code AppSettings Backup

Тогда все, что вам нужно сделать, это использовать последний элемент в списке words, как вам нравится.

Я никогда раньше не использовал Path, но мне интересно, получит ли он то, что вы хотите, так как последняя часть строки может быть каталогом.

0 голосов
/ 05 декабря 2011

Лучше использовать Класс пути для обработки такого рода вещей ...

Но если вы хотите использовать обработку строк, попробуйте

string myResult = myString.SubString (myString.LastIndexOf ( "\\") + 1 );
...