社区
C#
帖子详情
C# XmlDocument.Save()方法
GisXiaoluo
2012-03-27 11:30:59
在用xmldocument类时,我要先从中读取一个数据,然后再向其添加一个节点,在调用XmlDocument.Save()方法时就会出现该文件“由另一进程使用,因此该进程无法访问该文件。”的错误,
怎么样才能避免呢?是不是要用到多线程?
...全文
1059
8
打赏
收藏
C# XmlDocument.Save()方法
在用xmldocument类时,我要先从中读取一个数据,然后再向其添加一个节点,在调用XmlDocument.Save()方法时就会出现该文件“由另一进程使用,因此该进程无法访问该文件。”的错误, 怎么样才能避免呢?是不是要用到多线程?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孟子E章
2012-03-27
打赏
举报
回复
读和写,Load一次就可以了。XmlDocument是内存中的对象,直接可以使用
liuxin0121
2012-03-27
打赏
举报
回复
XmlDocument.Load(string)是托管方法,本身是不需要释放的安全方法,但是由于你多线程可能同时对文件本身访问,所以要加上一些处理
在你document处理完了之后,释放掉资源就可以了
[code=c#]
document.RemoveAll();
document = null;
[/code]
GisXiaoluo
2012-03-27
打赏
举报
回复
不是代码的问题 如果我不先读的话,直接去添加节点,document.save()方法就没问题,
GisXiaoluo
2012-03-27
打赏
举报
回复
好的
public int ComputeTimeSpan()
{
XmlDocument document = new XmlDocument();
XmlReaderSettings readingSettings = new XmlReaderSettings();
readingSettings.IgnoreComments = true;
XmlReader xmlReader = XmlReader.Create(fileName, readingSettings);
document.Load(xmlReader);
XmlNodeList nodeList = document.SelectSingleNo("LastCopyTime").ChildNodes;
if (nodeList.Count == 0)
return miniute;
string lastDate = nodeList[0].InnerText;
DateTime oldDate = DateTime.Parse(lastDate);
DateTime nowDate = DateTime.Now;
TimeSpan span = nowDate - oldDate;
miniute = span.Minutes;
System.Runtime.InteropServices.Marshal.ReleaseComObject(document);
return miniute;
}
public void WriteCopyDate()
{
XmlDocument document = new XmlDocument();
document.Load(fileName);
XmlNode node = document.SelectSingleNode("LastCopyTime");
string date = DateTime.Now.ToString("f");
if (node.FirstChild != null)
{
node.RemoveChild(node.FirstChild);
}
XmlElement element = document.CreateElement("LastTime");
element.InnerText = date;
node.AppendChild(element);
document.Save(fileName);
}
liuxin0121
2012-03-27
打赏
举报
回复
把你这段读文档一直到save的代码发上来,我看看
GisXiaoluo
2012-03-27
打赏
举报
回复
但是该怎么释放呢,求指教
liuxin0121
2012-03-27
打赏
举报
回复
读完了数据没释放吧,应该是这个进程还在占用中,释放了就好了
GisXiaoluo
2012-03-27
打赏
举报
回复
找到原因了,
XmlReader xmlReader = XmlReader.Create(fileName, readingSettings);
document.Load(xmlReader);
完成后 应该调用 xmlReader.close()方法,就不会出现 问题了
谢谢大家
C#
操作XML文件完整源码(十分经典)
C#
操作XML文件完整源码(十分经典)
一个非常好用的 XML 文件生成类(
C#
)
一个非常好用的 XML 文件生成类。提供快捷的产生 XML 文件的众多
方法
。(
C#
)
C#
xml读写操作,附带具体使用例子
项目工程文件,对xml操作已经做了封装,使用起来非常方便
c#
中对XML文件进行读写操作
c#
中对XML文件进行读写操作
c#
中对XML文件进行读写操作
c#
中对XML文件进行读写操作
C#
xml操作大全 【CSDN 3个例子】.
C#
xml操作大全 【CSDN 3个例子】
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章