在 C# 中获取当前目录名称(的最后一部分)

本文关键字:最后 一部分 取当前目录 | 更新日期: 2023-09-27 17:56:39

我需要获取当前目录的最后一部分,例如从/Users/smcho/filegen_from_directory/AIRPassthrough,我需要获取AIRPassthrough

使用python,我可以用这段代码得到它。

import os.path
path = "/Users/smcho/filegen_from_directory/AIRPassthrough"
print os.path.split(path)[-1]

print os.path.basename(path)

如何使用 C# 做同样的事情?

添加

在回答者的帮助下,我找到了我需要的东西。

using System.Linq;
string fullPath = Path.GetFullPath(fullPath).TrimEnd(Path.DirectorySeparatorChar);
string projectName  = fullPath.Split(Path.DirectorySeparatorChar).Last();

string fullPath = Path.GetFullPath(fullPath).TrimEnd(Path.DirectorySeparatorChar);
string projectName = Path.GetFileName(fullPath);

在 C# 中获取当前目录名称(的最后一部分)

你可以试试:

var path = @"/Users/smcho/filegen_from_directory/AIRPassthrough/";
var dirName = new DirectoryInfo(path).Name;

您正在寻找Path.GetFileName .
请注意,如果路径以 ' 结尾,这将不起作用。

这是一个略有不同的答案,具体取决于您拥有的内容。如果您有文件列表并且需要获取文件所在的最后一个目录的名称,则可以执行以下操作:

string path = "/attachments/1828_clientid/2938_parentid/somefiles.docx";
string result = new DirectoryInfo(path).Parent.Name;

这将返回"2938_parentid"

好吧,为了准确回答您的问题标题:-)

var lastPartOfCurrentDirectoryName = 
   Path.GetFileName(Environment.CurrentDirectory);

而不是使用"/"进行拆分调用,最好使用Path.DirectorySeparatorChar

这样:

path.split(Path.DirectorySeparatorChar).Last() 
var lastFolderName = Path.GetFileName(
    path.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar));

如果路径恰好包含正斜杠分隔符或反斜杠分隔符,则此方法有效。

您也可以使用 Uri 类。

new Uri("file:///Users/smcho/filegen_from_directory/AIRPassthrough").Segments.Last()
如果您想

获取其他细分,或者如果您想对 Web 地址执行相同的操作,您可能更喜欢使用此类。

试试这个:

String newString = "";
String oldString = "/Users/smcho/filegen_from_directory/AIRPassthrough";
int indexOfLastSlash = oldString.LastIndexOf('/');
newString = oldString.Substring(indexOfLastSlash, oldString.Length);

代码可能已关闭(我尚未对其进行测试),但该想法应该有效。

这对我来说

非常好:)

Path.GetFileName(path.TrimEnd('''')

你可以试试下面的代码:

Path.GetFileName(userpath)