首页 新闻 会员 周边

Directory.Delete(folderpath,true) 正由另一进程使用

0
悬赏园豆:10 [已关闭问题] 关闭于 2011-11-09 10:43

Directory.Delete(folderpath,true) 文件正由另一进程使用,因此该进程无法访问该文件 注:我删除folderpath下面的文件和文件夹,当下面的都删除后,最后folderpath这个文件夹删除报错了。直接去删除都不行。

问题补充:

没人知道么......

ValiantZhao的主页 ValiantZhao | 初学一级 | 园豆:194
提问于:2011-10-26 11:24
< >
分享
所有回答(1)
0

试试这个:

public static bool DeleteDirectory(string target_dir)
{
bool result = false;

string[] files = Directory.GetFiles(target_dir);
string[] dirs = Directory.GetDirectories(target_dir);

foreach (string file in files)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}

foreach (string dir in dirs)
{
DeleteDirectory(dir);
}

Directory.Delete(target_dir, false);

return result;
}
artwl | 园豆:16736 (专家六级) | 2011-10-26 11:28

多谢,不过这样是不行的,我是创建后我就删除,估计是被某个线程给占住了,而我创建单个文件夹删除就不会有问题。

支持(0) 反对(0) ValiantZhao | 园豆:194 (初学一级) | 2011-10-26 11:46

@websimple: 创建文件后流不要忘了关闭:

//创建文件夹 
string[] strPath= FilePathName.Split('/');
CreateFolder(FilePathName.Replace("/" + strPath[strPath.Length-1].ToString(),"")); //创建文件

FileInfo CreateFile =new FileInfo(System.Web.HttpContext.Current.Server.MapPath
(FilePathName).ToString()); //创建文件
if(!CreateFile.Exists)
{
FileStream FS=CreateFile.Create();
FS.Close();
}

注意FS.Close();不要掉了

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2011-10-26 11:58

@天行健 自强不息:  Directory.SetCurrentDirectory(@GetServerPath + "/" + orignFolder + "/");
            Directory.CreateDirectory(NewFloder); 我时这样穿件文件夹的,我没有创建文件.我这样如何关闭呢。

支持(0) 反对(0) ValiantZhao | 园豆:194 (初学一级) | 2011-10-26 12:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册