如何从应用程序的完整路径获取文件夹名称?从完整文件路径获取文件夹名称
这是下面的文件路径,
c:\projects\root\wsdlproj\devlop\beta2\text
这里的 “文本” 是文件夹名称。
如何从此路径获取该文件夹的名称?
如何从应用程序的完整路径获取文件夹名称?从完整文件路径获取文件夹名称
这是下面的文件路径,
c:\projects\root\wsdlproj\devlop\beta2\text
这里的 “文本” 是文件夹名称。
如何从此路径获取该文件夹的名称?
string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;
试试这个
var myFolderName = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
var result = Path.GetFileName(myFolderName);
如果你有一个文件名转换为字符串,返回文件名也 – swissben 2011-03-08 07:07:25
在这种情况下,文本是(无扩展名)文件名。我认为那是OP之后的事情。如果它是一个文件夹或文件名实际上并不重要。如果字符串不包含文件名,这段代码将会给他以后的内容。 – 2011-03-08 07:32:09
除非路径以\像这样结束:'@“c:\ projects \ roott \ wsdlproj \ devlop \ beta2 \ text \”' – 2011-03-08 08:25:32
您可以使用此:
string path = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
string lastDirectory = path.Split(new char[] { System.IO.Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries).Last();
如果路径如下所示:@“c:\ projects \ roott \ wsdlproj \ devlop \ beta2 \ text \”,因此需要额外的DirectorySeparatorChar – 2011-03-08 07:02:40
@Alex - 我修改了我的代码以使其工作这些路径也是如此。 'StringSplitOptions.RemoveEmptyEntries'完成这个任务。 – 2011-03-08 08:24:25
根据http://msdn.microsoft.com/en-us/library/system.io.fileinfo.fileinfo.aspx,如果未提供所需的权限,FileInfo可能会引发异常。 – 2012-06-05 20:15:30
我想你想从文件路径获取父文件夹的名称。很容易得到。 一种方法是创建一个FileInfo
类型对象并使用其属性Directory
。
例子:
FileInfo fInfo = new FileInfo("c:\projects\roott\wsdlproj\devlop\beta2\text\abc.txt");
String dirName = fInfo.Directory.Name;
Path.GetDirectoryName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");
这将返回'c:\ projects \ roott \ wsdlproj \ devlop \ beta2',这不是OP后的内容。 – 2011-03-08 07:30:45
在这种情况下,要获得存储在strPath的变量文件:
string strPath = Server.MapPath(Request.ApplicationPath) + "/contents/member/" + strFileName;
这也可以做到像这样;
var directoryName = System.IO.Path.GetFileName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");
这将返回一个空字符串 – disklosr 2014-12-17 14:24:34
@disklosr - 刚刚使用ScriptCs进行测试,并返回'text' – 2014-12-21 21:10:02
如果文件夹路径不包含尾部反斜杠(例如[Path.GetDirectoryName( )](https://msdn.microsoft.com/en-us/system.io.path.getdirectoryname.aspx))。但是,该函数的名称GetFileName()有点误导。 – 2015-09-04 14:26:24
我想除了进入文件系统找出text.txt是一个目录还是一个文件是没有办法的。如果你想简单的东西,也许你可以使用:
s.Substring(s.LastIndexOf(@"\"));
为了避免在字符串前面出现斜线: s.Substring(s.LastIndexOf(@“\”)+ 1); – 2016-05-31 20:33:02
这里是为我工作,而无需创建一个DirectoryInfo对象的替代方法。关键是GetFileName()
在路径中没有结尾斜线时起作用。
var name = Path.GetFileName(path.TrimEnd(Path.DirectorySeparatorChar));
例子:
var list = Directory.EnumerateDirectories(path, "*")
.Select(p => new
{
id = "id_" + p.GetHashCode().ToString("x"),
text = Path.GetFileName(p.TrimEnd(Path.DirectorySeparatorChar)),
icon = "fa fa-folder",
children = true
})
.Distinct()
.OrderBy(p => p.text);
谢谢亚历克斯....这是我想... – vasmay 2011-03-08 07:02:42
非常感谢很多 – 2015-05-08 07:08:32
这不需要该文件夹实际存在于文件系统中(如果文件夹为“c:\ projects \ root \ wsdlproj \ devlop”,该文件夹名称将仍然为“文本” \ beta2 \ text“目前没有存在于文件系统中)? – 2015-09-04 11:20:01