>路径 = c:\users\source\reports\projects\ .file
如何检查文件夹名称 == "报告"中的项目文件夹?
例如: 如果(报告( .....做一个条件
可以使用System.IO.Path
类中的GetDirectory()
和Filename()
方法,如下所示:
string path = @"c:userssourcereportsprojects.file";
string parent = Path.GetDirectory(path);
// parent == "@"c:userssourcereportsprojects"
string grandparent = Path.GetDirectory(parent);
// grandparent == "@"c:userssourcereports"
string filename = Path.Filename(grandparent);
// filename == "reports"
现在您可以检查filename
是否"reports"
。
一种方法是使用System.IO.DirectoryInfo
类,可以使用路径字符串实例化。此类具有表示目录的属性,包括Parent
,它返回父文件夹的新DirectoryInfo
。它还有一个Name
属性,它是文件夹的名称(不要与FullName
混淆,这是文件夹的完整路径,我们不需要(。
所以,在你的例子中,我们需要Parent
的Parent
,然后将Name
与"reports"
进行比较:
var path = @"c:userssourcereportsprojectsFileName.ext";
if (new DirectoryInfo(path).Parent.Parent.Name == "reports")
{
Console.WriteLine("found it!");
}
如果你想做一个更详细的搜索,比如第一个Parent
被称为"项目",你也可以这样做。这也显示了如何进行不区分大小写的比较,这可能是一个好主意:
var path = @"c:userssourcereportsprojectsFileName.ext";
var dirInfo = new DirectoryInfo(path);
if (dirInfo.Parent.Name.Equals("projects", StringComparison.OrdinalIgnoreCase) &&
dirInfo.Parent.Parent.Name.Equals("reports", StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine("The file is in 'projects', which is in the 'reports' folder.");
}