操作文件时加锁
.net编程中经常会用到操作文件,特别是xml文件经常会用到
文件操作在多线程中如果不注意经常会碰到"XXX文件正在由另一个进程访问"之类的错误
XmlDocument.Load(string)是托管方法,本身是不需要释放的安全方法
但是由于你多线程可能同时对文件本身访问,所以要加上一些处理在你document处理完了之后,释放掉资源就可以了
document.RemoveAll();
document = null; 但这样并不保险,上面的问题还是存在,最好在文件操作的时候加上锁,即当前只允许一个线程访问,而且最好是一个全局静态锁 如:
public static object FileLockObj = new object(); //文件访问锁

操作文件时加锁
lock (FileLockObj)
{
//更新配置
XmlUtils xu = new XmlUtils();
xu.EditFileConfigTimes(app.Name, app.Times);
}
递归处理文件夹
public static void DealFiles(string filePath)
{
DirectoryInfo fatherFolder = new DirectoryInfo(filePath);
//处理当前文件夹内文件
FileInfo[] files = fatherFolder.GetFiles();
foreach (FileInfo file in files)
{
string fileName = file.Name;
try
{
Console.WriteLine("XXX");
//var upLoaded = UpLoadFile(file);
//if (upLoaded)
//{
// //file.Delete();
//}
Console.WriteLine(file.Name + "XXX");

}
catch (Exception ex)
{
}
}

//递归处理子文件夹内文件
foreach (DirectoryInfo childFolder in fatherFolder.GetDirectories())
{
DealFiles(childFolder.FullName);
}
}---end---