如何停止 Directory.CreateDirectory 创建 parents?
how to stop Directory.CreateDirectory creating parents?
我知道 Directory.CreateDirectory
实际上会创建 parent,那么我该如何阻止这种情况发生呢?即是否有一种模式可以像 stricter
那样使用,原因是我有一个监视程序监视 parent 顶级树目录,如果 Directory.CreateDirectory
它会变得疯狂一次制作多个目录。
有没有等同于 Directory.CreateDirectory
的东西,它不会产生 parents?
你明白你需要这样的方法吗?您似乎不想创建创建目标文件夹所需的所有文件夹,例如: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);
}
}
这样做了,问题是如果你想 "gently" 一次将路径卷到一个目录中,这样是你可以做到的唯一方法:/
我知道 Directory.CreateDirectory
实际上会创建 parent,那么我该如何阻止这种情况发生呢?即是否有一种模式可以像 stricter
那样使用,原因是我有一个监视程序监视 parent 顶级树目录,如果 Directory.CreateDirectory
它会变得疯狂一次制作多个目录。
有没有等同于 Directory.CreateDirectory
的东西,它不会产生 parents?
你明白你需要这样的方法吗?您似乎不想创建创建目标文件夹所需的所有文件夹,例如: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);
}
}
这样做了,问题是如果你想 "gently" 一次将路径卷到一个目录中,这样是你可以做到的唯一方法:/