【发布时间】:2011-07-10 21:36:37
【问题描述】:
如何从应用程序的完整路径中获取文件夹名称?
这是下面的文件路径,
c:\projects\root\wsdlproj\devlop\beta2\text
这里的“文本”是文件夹名称。
如何从该路径获取该文件夹名称?
【问题讨论】:
如何从应用程序的完整路径中获取文件夹名称?
这是下面的文件路径,
c:\projects\root\wsdlproj\devlop\beta2\text
这里的“文本”是文件夹名称。
如何从该路径获取该文件夹名称?
【问题讨论】:
试试这个
var myFolderName = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
var result = Path.GetFileName(myFolderName);
【讨论】:
@"c:\projects\roott\wsdlproj\devlop\beta2\text\"
string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;
【讨论】:
你可以用这个:
string path = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
string lastDirectory = path.Split(new char[] { System.IO.Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries).Last();
【讨论】:
StringSplitOptions.RemoveEmptyEntries 成功了。
我认为您想从文件路径中获取父文件夹名称。很容易得到。
一种方法是创建一个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 所追求的。
在这种情况下,您要获取的文件存储在 strpath 变量中:
string strPath = Server.MapPath(Request.ApplicationPath) + "/contents/member/" + strFileName;
【讨论】:
这样也可以;
var directoryName = System.IO.Path.GetFileName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");
【讨论】:
我认为除了进入文件系统来找出 text.txt 是目录还是文件之外别无他法。如果你想要一些简单的东西,也许你可以使用:
s.Substring(s.LastIndexOf(@"\"));
【讨论】:
这是一种对我有用的替代方法,无需创建 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);
【讨论】:
只需使用Path.GetFileName
这里 - 从文件夹的完整路径中提取文件夹名称:
string folderName = Path.GetFileName(@"c:\projects\root\wsdlproj\devlop\beta2\text");//Return "text"
这是一些额外的 - 从文件的完整路径中提取文件夹名称:
string folderName = Path.GetFileName(Path.GetDirectoryName(@"c:\projects\root\wsdlproj\devlop\beta2\text\GTA.exe"));//Return "text"
【讨论】:
using static System.IO.Path;
var dir = GetFileName(path?.TrimEnd(DirectorySeparatorChar, AltDirectorySeparatorChar));
GetFileName from .NET source的解释:
返回给定路径的名称和扩展部分。所结果的 字符串包含路径的最后一个字符 反斜杠 ("\")、斜杠 ("/") 或冒号 (":") 字符 小路。结果字符串是整个路径,如果路径 删除尾部斜杠、斜杠或冒号字符后不包含反斜杠。所结果的 如果路径为空,则字符串为空。
【讨论】: