我希望能够将文件夹的路径传递给应用程序,让程序运行该文件夹的整个内容,包括嵌套的文件夹和文件,删除它遇到的具有特定名称的任何文件夹
我已经四处寻找可能的方法,但我似乎无法找到任何好的文档。
非常感谢帮助。
亲切的问候,
答案 0 :(得分:6)
尝试这样的操作,删除在初始目录中找到的与您指定的名称匹配的任何目录:
public void RecursiveDelete(string path, string name)
{
foreach (string directory in Directory.GetDirectories(path))
{
if (directory.EndsWith("\\" + name))
{
Directory.Delete(directory, true);
}
else
{
RecursiveDelete(directory, name);
}
}
}
然后拨打RecursiveDelete("initial path", "name of directory to delete");
答案 1 :(得分:0)
去递归。
基本上,有一个函数将文件夹名称作为其参数并让它调用Directory.GetDirectories(),遍历它返回的字符串[],使用每个新字符串作为参数调用自身,然后调用Directory.GetFiles()或其他任何函数并删除每个函数。返回时,删除该文件夹。
所以想象你有 富 富\ A.TXT 富\ b.txt 富\酒吧 FOO \酒吧\ c.txt
从Foo开始,它会检测到Bar并递归到它。 在Bar中,它找不到文件夹,所以不再从那里递归。找到c.txt,它被删除。 回到Foo,它会删除Bar,然后找到a.txt和b.txt,删除每个。
易。
答案 2 :(得分:0)
您检查过MSDN吗? Directory class将是您的朋友:
public void DeleteFiles(string path, string toDelete)
{
if(Directory.Exists(path))
{
foreach(string folder in Directory.GetDirectories(path))
{
if(toDelete == Path.GetDirectoryName(folder))
{
DeleteFilesInFolder(folder);
Directory.Delete(folder);
}
}
}
}
您必须先删除文件夹中的文件,但方法大致相同。