在 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);
你可以试试:
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)