操作文件时加锁
.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---
文件操作一些总结
原创
©著作权归作者所有:来自51CTO博客作者jack2022的原创作品,请联系作者获取转载授权,否则将追究法律责任
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
ImageButton一些总结
使用...
android ImageButton UI xml ico -
edm一些总结
html格式内容并非所有的特性都可以使用,比较安全的做法是:基本的html标签(常用
edm 总结 smtp email html标签 -
对文件操作的一些方法
1.获取执行文件的路径 用函数GetModuleFileName2.获取执行文件所在目录的方法CString sFile,sPath; //获取主程序所在路径,存在sPath中 GetModuleF
attributes path security excel null -
【一些总结】
我们嘲笑过少年的无知,也嘲笑过岁月的苍老。我们行走在路上,理想宏大,眼窝却浅显。 ...
线段树 后缀 数组 数据结构 取模 -
文件操作的一些疑问
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE ...
java txt文件 合并流 文本文件 .net -
最近一些总结
最近一些总结
我的软件工程思考 造轮子