2011-12-05 65 views
0

我正在使用ASP.NET/C# 3.5構建Web瀏覽器的Windows資源管理器應用程序。我有一個包含我的路徑信息的動態字符串。該字符串在您導航應用程序時發生變化。我所試圖做的是在我的字符串獲得最後的「目錄名」因此,例如:字符串操作 - 獲取最後的'x'字符數量

C:\Code\AppSettings 

,我需要回到AppSettings

如果字符串是:

C:\Code\AppSettings\Backup 

然後,我需要返回Backup

我不夠聰明的字符串處理從動態字符串正確地得到這個。任何幫助或例子都會很棒。

謝謝!

+2

與'Path'相比更容易做到。 – DarthVader

回答

5

由於您正在處理文件/目錄路徑,因此最好使用Path Class的幫助器方法而不是字符串操作。

可以使用Path.GetFileName Method

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('\\'); 

根據'\\'將字符串Tokenises,即將字符串拆分爲'\'符號,將其轉換爲包含C: 0的數組AppSettingsBackup

然後,您只需使用words列表中的最後一個元素即可。

我從來沒有用過Path之前,但我想知道它是否會得到你想要的,因爲字符串的最後一部分可能是一個目錄。

+0

使用'StringSplitOptions.RemoveEmptyEntries'來避免帶尾隨目錄分隔符的路徑引起的問題,即「C:\ Code \ AppSettings \」。 –

1

看看在Path class。在你的情況下,Path.GetFileName將工作。除非有尾隨的反斜槓。然後你需要首先去掉尾部的反斜槓。

或者,您可以使用SubstringString.Split,正如其他人所建議的那樣。但是,請注意,您必須考慮可能會導致後續反斜槓,這可能會導致任何替代方案的問題。

尾隨反斜槓,我的意思是像C:\Code\AppSettings\這樣的字符串。

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

結果Backup

System.IO.Path應該用於文件或目錄路徑的操作 - 它提供了大量有用的方法。

相關問題