运用递归方法实现了 指定目录下自动删除文件夹及文件的功能。
但是运行时,发现文件夹内的文件删除后不能及时删除这个文件夹,而是
到下一次运行时才判断然后删除已经空的文件夹。
有没有什么方法实现同步的删除文件及文件夹吗?递归是用了但是我的思路大概有误
下面是简单的代码:
///
///pathName: 路径
///pathType:类型
///pathDate: 指定时间 删除
///
///
private void DeleteF(string pathName,string pathType,double pathDate)
{
DateTime dtNow = DateTime.Now;
// 先搜索指定目录下的文件是否,超过预定日期,并予以删除处理
foreach (string MyFile in Directory.GetFiles(pathName, pathType))
{
....
//符合删除条件时
if (... > ....)
{
//删除
File.Delete(MyFile);
}
}
....
....
//搜索指定目录下的文件夹
foreach (FileSystemInfo tempFsi in fsi)
{
// 如果是文件夹
if(....... == ......)
{
....;
...;
....;
//如果指定目录下还有文件夹
if(rootDirs.Length > 0)
{
//指定路径
string pathNameTo = pathName + tempFsi.ToString()+@"\";
..
..
// 如果文件夹为空,文件夹下没有文件夹时
if(...Length == 0
&& ....Length == 0
&& ... > ...)
{
//删除文件夹
Directory.Delete(tempFsi.FullName, false);
}
else
{
//不是就递归这个方法
this.DeleteFile2(pathNameTo,pathType,pathDate);
}
}
}
}
}
因为罗嗦所以求高手们帮忙看看 问题所在,不是评论~
文件不能随意删除,必须符合超过指定时间的文件,予以判断然后再进行删除。文件夹里面如果没有文件,在给以删除。
再次感谢
|