sjo*_*urg 18 c# directory directory-structure
什么是检查目录1是否是目录2的子目录的简单方法,反之亦然?
我检查了Path和DirectoryInfo帮助类,但没有找到系统就绪函数.我以为它会在某处.
你们有个想法在哪里找到这个吗?
我自己试着写一张支票,但它比我开始时预期的要复杂得多.
Ste*_*unn 10
在回答问题的第一部分时:"dir1是dir2的子目录吗?",此代码应该有效:
public bool IsSubfolder(string parentPath, string childPath)
{
var parentUri = new Uri(parentPath);
var childUri = new DirectoryInfo(childPath).Parent;
while (childUri != null)
{
if(new Uri(childUri.FullName) == parentUri)
{
return true;
}
childUri = childUri.Parent;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
在URI
S(在Windows至少,可能会在单声道/ Linux的不同)是不区分大小写.如果区分大小写很重要,请改用Compare
方法Uri
.
这是使用Uri类更简单的方法:
var parentUri = new Uri(parentPath);
var childUri = new Uri(childPath);
if (parentUri != childUri && parentUri.IsBaseOf(childUri))
{
//dowork
}
Run Code Online (Sandbox Code Playgroud)
fle*_*her -11
Parent property
在这两种情况下使用 DirectoryInfo 时,您可以将目录 2 与目录 1 进行比较。
DirectoryInfo d1 = new DirectoryInfo(@"C:\Program Files\MyApp");
DirectoryInfo d2 = new DirectoryInfo(@"C:\Program Files\MyApp\Images");
if(d2.Parent.FullName == d1.FullName)
{
Console.WriteLine ("Sub directory");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11533 次 |
最近记录: |