我正在使用ASP.NET / C#3.5为Web构建一个Windows资源管理器应用程序。我有一个动态字符串,用于保存我的路径信息。导航应用程序时,此字符串会更改。我想要做的是获取我的字符串中的最后一个“目录名称”,例如:
C:\Code\AppSettings
我需要返回AppSettings
如果字符串是:
C:\Code\AppSettings\Backup
然后我需要返回Backup
我对字符串操作不够精明,无法从动态字符串中正确获取。任何帮助或示例都会很棒。
谢谢!
答案 0 :(得分:5)
由于您正在处理文件/目录路径,因此最好使用Path Class的辅助方法而不是字符串操作。
您可以使用Path.GetFileName Method:
var result = Path.GetFileName(@"C:\Code\AppSettings");
// result == "AppSettings"
答案 1 :(得分:1)
看看Path class。在您的情况下,Path.GetFileName
会起作用。除非有反斜杠。然后你需要先删除那个尾随反斜杠。
或者,您可以像其他人所建议的那样使用Substring
或String.Split
。但是,请注意,您必须考虑到反斜杠的可能性,这可能会导致任何替代方案出现问题。
通过尾部反斜杠,我的意思是像C:\Code\AppSettings\
这样的字符串。
答案 2 :(得分:1)
Path.GetFileName(@"C:\Code\AppSettings\Backup")
结果为Backup
System.IO.Path
应该用于文件或目录路径操作 - 它提供了许多其他有用的方法。
答案 3 :(得分:0)
最好使用Path class来处理这类东西......
但如果您想通过字符串处理尝试
string myResult = myString.SubString (myString.LastIndexOf ( "\\") + 1 );
答案 4 :(得分:0)
我认为应该这样做:
exampleString = "C:\Code\AppSettings\Backup"
string[] words = exampleString.Split('\\');
根据'\\'
对字符串进行标记,即将'\'
符号处的字符串拆分为包含C:
Code
AppSettings
{{1}的数组}
然后您需要做的就是使用Backup
列表中的最后一个元素。
我之前从未使用words
,但我想知道它是否会得到你想要的,因为字符串的最后一部分可能是一个目录。