私が知っている限り、それを行う唯一の方法は
parent folder : Split the path on "\" and think to remove the drive letter and colon
subfolder : navigate it recursively (which can be time consuming)
これには他にも多くの点を考慮する必要がありますが、これが大きなアイデアです。
編集:ここにあなたが必要とするもののサンプルがあります...もっと多くの仕事が必要ですが、それは良いスタートだと思います...利点は、パスを表す文字列だけでなく、未知のフォルダー構造で作業できることです。
public static class FoldersHelper
{
public static int ParentFolderCount(string path)
{
int parentcnt = 0;
if (System.IO.Directory.Exists(path))
{
string pathroot = Path.GetPathRoot(path);
path = path.Remove(1, pathroot.Length);
parentcnt = path.Split('\\').Count()-1;
return parentcnt;
}
else
{
throw new Exception("not a folder exception");
}
return 0;
}
public static int ChildFolderCount(string path)
{
int childcnt = 0;
int maxchild = 0;
if (System.IO.Directory.Exists(path))
{
if (Directory.GetDirectories(path).Length > 0)
{
foreach (string subpath in Directory.GetDirectories(path))
{
childcnt = ChildFolderCount(subpath) + 1;
if (childcnt > maxchild) maxchild = childcnt;
}
}
}
else
{
throw new Exception("not a folder exception");
}
return maxchild;
}
}