首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果最后一个字符是带有C#的DirectorySeparatorChar,则将其删除

如果最后一个字符是带有C#的DirectorySeparatorChar,则将其删除
EN

Stack Overflow用户
提问于 2011-05-16 22:56:38
回答 6查看 21.5K关注 0票数 23

我需要使用Path.GetFileName()提取路径信息,当输入字符串的最后一个字符为DirectorySeparatorChar('/‘或'\')时,此函数不起作用。

我想出了这个代码,但它太长了。有没有更好的办法?

代码语言:javascript
复制
string lastCharString = fullPath.Substring (fullPath.Length-1);
char lastChar = lastCharString[0];

if (lastChar == Path.DirectorySeparatorChar) {
    fullPath = fullPath.Substring(0, fullPath.Length-1);
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-05-16 23:21:00

代码语言:javascript
复制
fullPath = fullPath.TrimEnd(Path.DirectorySeparatorChar);
票数 60
EN

Stack Overflow用户

发布于 2012-01-20 14:23:58

代码语言:javascript
复制
// If the fullPath is not a root directory
if (Path.GetDirectoryName(fullPath) != null)
    fullPath = fullPath.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
票数 16
EN

Stack Overflow用户

发布于 2011-05-16 23:05:25

代码语言:javascript
复制
string path1 =  @"c:\directory\";
string path2 = @"c:\directory\file.txt";
string path3 = @"c:\directory";

Console.WriteLine(Path.Combine(Path.GetDirectoryName(path1), Path.GetFileName(path1)));
Console.WriteLine(Path.Combine(Path.GetDirectoryName(path2), Path.GetFileName(path2)));
Console.WriteLine(Path.Combine(Path.GetDirectoryName(path3), Path.GetFileName(path3)));

提供:

代码语言:javascript
复制
c:\directory
c:\directory\file.txt
c:\directory

希望能有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6019227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档