在C#中获取当前目录名(的最后部分)
我需要获取当前目录的最后部分,例如从/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#做同样的事情?
添加
在回答者的帮助下,我find了我需要的东西。
 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); 
	
 你正在寻找Path.GetFileName 。 
 请注意,如果path以\结尾,这将不起作用。 
你可以尝试:
 var path = @"/Users/smcho/filegen_from_directory/AIRPassthrough/"; var dirName = new DirectoryInfo(path).Name; 
获取文件夹名称的最简单方法是使用path初始化DirectoryInfo的实例。
 string path = "/Users/smcho/filegen_from_directory/AIRPassthrough"; string result = new DirectoryInfo(path).Name; 
如果path结尾有或没有目录分隔符,并且使用了向前或向后分隔符,则此方法工作相同。
那么, 准确地回答你的问题标题:-)
 var lastPartOfCurrentDirectoryName = Path.GetFileName(Environment.CurrentDirectory); 
这是一个稍微不同的答案,取决于你有什么。 如果你有一个文件列表,并需要获取该文件所在的最后一个目录的名称,可以这样做:
 string path = "/attachments/1828_clientid/2938_parentid/somefiles.docx"; string result = new DirectoryInfo(path).Parent.Name; 
这将返回“2938_parentid”
 而不是使用“/”来调用split,最好使用Path.DirectorySeparatorChar : 
像这样:
 path.split(Path.DirectorySeparatorChar).Last() 
 var lastFolderName = Path.GetFileName(path) .TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); 
这适用于path恰好包含正斜杠分隔符或反斜杠分隔符。
尝试这个:
 String newString = ""; Sting oldString = "/Users/smcho/filegen_from_directory/AIRPassthrough"; int indexOfLastSlash = oldString.LastIndexOf('/', 0, oldString.length()); newString = oldString.subString(indexOfLastSlash, oldString.length()); 
代码可能会closures(我还没有testing过),但这个想法应该工作