2011-12-05 6 views
0

ASP.NET/C# 3.5를 사용하여 웹용 Windows 탐색기 응용 프로그램을 작성합니다. 내 경로 정보를 보유하는 동적 문자열이 있습니다. 이 문자열은 응용 프로그램을 탐색 할 때 변경됩니다. 문자열이 있었다면문자열 조작 - 마지막 'x'문자 양 가져 오기

C:\Code\AppSettings 

내가 AppSettings

를 반환해야합니다 : 내가 뭘하려고 예를 들어, 그래서 내 문자열의 마지막 "디렉토리 이름을"얻을 것입니다

C:\Code\AppSettings\Backup 

그렇다면 돌아와야 할 것입니다. Backup

동적 문자열에서 올바르게 얻으려면 문자열 조작에 익숙하지 않습니다. 어떤 도움이나 예도 좋을 것입니다.

감사합니다.

+2

'경로'로하기가 더 쉽습니다. – DarthVader

답변

5

파일/디렉토리 경로를 다루므로 문자열 조작 대신 Path Class의 도우미 방법을 사용하는 것이 가장 좋습니다.

var result = Path.GetFileName(@"C:\Code\AppSettings"); 
// result == "AppSettings" 
+0

모두에게 도움을 주셔서 감사합니다. – Jared

0

이런 종류의 물건을 처리하는 Path class을 사용하는 것이 좋습니다 ...

하지만

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

을 시도 문자열 처리를 통해 원한다면 나는이 그것을해야한다고 생각 :

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

문자열을 '\\'에 따라 토큰 화합니다. 즉 '\' 기호의 문자열을 C:을 포함하는 배열로 나눕니다.AppSettingsBackup

그런 다음 원하는대로 words 목록의 마지막 요소를 사용하면됩니다.

이전에 Path을 사용한 적이 없지만 문자열의 마지막 부분이 디렉토리 일 수 있으므로 원하는 결과를 얻을 수 있을지 궁금합니다.

+0

'StringSplitOptions.RemoveEmptyEntries'를 사용하여 디렉토리 분리 기호가있는 경로 (예 : "C : \ Code \ AppSettings \")로 인한 문제를 피하십시오. –

1

Path class를 살펴 보자 :

당신은 Path.GetFileName Method가 사용할 수 있습니다. 귀하의 경우 Path.GetFileName가 작동합니다. 후행 백 슬래시가없는 한. 그런 다음 뒤쪽의 백 슬래시를 먼저 제거해야합니다.

다른 사람이 제안한대로 Substring 또는 String.Split을 사용할 수 있습니다. 그러나 대체 백 슬래시가 문제가 될 수있는 후행 백 슬래시의 가능성을 고려해야합니다.

역 슬래시를 말하면, C:\Code\AppSettings\과 같은 문자열을 의미합니다. Backup

System.IO.Path에서

1
Path.GetFileName(@"C:\Code\AppSettings\Backup") 

결과는 파일이나 디렉토리 경로 조작에 사용한다 - 그것은 다른 유용한 방법을 많이 제공합니다.