如何停止目录.CreateDirectory正在创建父级

本文关键字:创建 CreateDirectory 何停止 | 更新日期: 2023-09-27 17:59:10

我知道Directory.CreateDirectory实际上创建了父对象,那么我该如何阻止这种情况发生呢?也就是说,是否有一种模式可以像stricter那样使用,原因是我有一个监视程序在监视父顶层树目录,如果Directory.CreateDirectory一次生成多个目录,它就会出错。

有没有Directory.CreateDirectory的等价物不会成为父母?

如何停止目录.CreateDirectory正在创建父级

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

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

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

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);
    }
}

这样做了,问题是如果你想"温和地"将路径一次滚动一个目录,这样做是唯一的方法:/