如何停止Directory.CreateDirectory创建父项?

时间:2015-06-22 13:17:33

标签: c# parent create-directory

我知道Directory.CreateDirectory实际上创造了父母,所以我怎么能阻止这种情况发生呢?也就是说,有一种模式,我可以像stricter那样使用这种模式,原因是我有一个观看程序,观看父顶部树目录,如果Directory.CreateDirectory不止一个,它就会变成beserk dir一次。

是否有相当于Directory.CreateDirectory的父母不会成为父母?

2 个答案:

答案 0 :(得分:0)

你明白你需要这种方法吗?您似乎不想创建创建目标文件夹所需的所有文件夹,例如:C:\this\is\your\path\TargetFolder 在这种情况下,您可以执行以下操作:

const string path = @"C:\this\is\your\path";
if (Directory.Exists(path))
{
    Directory.CreateDirectory(Path.Combine(path, "TargetDirectory"));
}

如果您对该方法有其他目的,请帮助我们了解哪一个

答案 1 :(得分:0)

List<string> missingDirectories = null;
private void MakeParents(string path)
{
    missingDirectories = new List<string>();
    missingDirectories.Add(path);
    parentDir(path);
    missingDirectories = missingDirectories.OrderBy(x => x.Length).ToList<string>();
    foreach (string directory in missingDirectories)
    {
        Directory.CreateDirectory(directory);
    }        
}
private void parentDir(string path)
{
    string newPath = path.Substring(0, path.LastIndexOf(Path.DirectorySeparatorChar));
    if (!Directory.Exists(newPath))
    {
        missingDirectories.Add(newPath);
        parentDir(newPath);
    }
}

这样做,问题是,如果你想轻轻地&#34;一次滚动一个方向的路径,这样就是你能做到的唯一方法:/