C#批量删除指定文件夹下指定文件名的所有文件夹

本文介绍了一个C#方法,用于递归地删除文件系统中指定路径下名称匹配的目录。该方法首先检查并修正输入路径,然后通过遍历子目录来递归调用自身,直至找到与目标名称匹配的目录并将其删除。
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">private</span> <span style="color: blue;">void</span> DeleteDirByName(<span style="color: blue;">string</span> rootPath, <span style="color: blue;">string</span> name)</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">string</span> dirName = rootPath;</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">if</span>(rootPath.EndsWith(<span style="color: #a31515;">"\\"</span>)||rootPath.EndsWith(<span style="color: #a31515;">"/"</span>))</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>rootPath = rootPath.Substring(0,rootPath.Length-1);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">int</span> indexSplit = rootPath.LastIndexOf(<span style="color: #a31515;">'\\'</span>);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">if</span>(indexSplit<0)</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>indexSplit = rootPath.LastIndexOf(<span style="color: #a31515;">'/'</span>);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style=""></span><span style="color: blue;">if</span>(indexSplit>0)</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>dirName = rootPath.Substring(indexSplit + 1);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">if</span> (dirName.ToLower() == name.ToLower())</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">this</span>.SetFileAttributes(rootPath);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: #2b91af;">Directory</span>.Delete(rootPath, <span style="color: blue;">true</span>);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">this</span>.textBox3.Text += rootPath + <span style="color: #2b91af;">Environment</span>.NewLine;</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">else</span></span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">string</span>[] subDirs = <span style="color: #2b91af;">Directory</span>.GetDirectories(rootPath);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">foreach</span> (<span style="color: blue;">string</span> subDir <span style="color: blue;">in</span> subDirs)</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">this</span>.DeleteDirByName(subDir, name);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">private</span> <span style="color: blue;">void</span> SetFileAttributes(<span style="color: blue;">string</span> path)</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">string</span>[] files = <span style="color: #2b91af;">Directory</span>.GetFiles(path);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">foreach</span> (<span style="color: blue;">string</span> file <span style="color: blue;">in</span> files)</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: #2b91af;">File</span>.SetAttributes(file, <span style="color: #2b91af;">FileAttributes</span>.Normal);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">string</span>[] subDirs = <span style="color: #2b91af;">Directory</span>.GetDirectories(path);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">foreach</span> (<span style="color: blue;">string</span> subDir <span style="color: blue;">in</span> subDirs)</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>{</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span><span style="color: blue;">this</span>.SetFileAttributes(subDir);</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="text-align: left; margin: 0cm 0cm 0pt;" align="left"><span style="font-family: NSimSun; font-size: 9.5pt;" lang="EN-US"><span style=""> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-family: Calibri; font-size: small;"></span></span></p>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值