XmlDocument.load 读文件报异常:文件正被其它线程使用,解决方法
string filePath = Form1.getProjectFilePath();
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
//xmlDoc.Load(filePath);
using (System.IO.FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (System.IO.StreamReader sr = new StreamReader(fs, Encoding.GetEncoding()))
{
var strXml = sr.ReadToEnd();
xmlDoc.LoadXml(strXml);
}
}
protected void abcBankPayment(string no, string amount, string productName, string qcode)
{
var buildingName = productName.Split(':')[];
var bean = new ABCBankAccountBean();
DataContractJsonSerializer jsonSerial = new DataContractJsonSerializer(typeof(ABCBankAccountBean));
var result = File.ReadAllText(MapPath("~/Finance/ABCBankAccountMaping.json"), System.Text.Encoding.UTF8);
using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(result)))
{
bean = (ABCBankAccountBean)jsonSerial.ReadObject(stream);
}
Building entityBuilding = bean.buildingItems.Where(exp => exp.buildingNames.Contains(buildingName)).FirstOrDefault();
if (entityBuilding == null)
{
//楼盘没有农行支付配置
getMsgLabel().Text = string.Format("楼盘'{0}'不能使用农行接口支付", buildingName);
return;
}
}
string[] arrayXmlNodeName_01 = new string[]
{
"YHX_XC_H", "YHX_XC_H1", "YHX_XC_DH", "YHX_XC_NDJ","YHX_XC_H2", "YHX_XC_H3", "YHX_XC_H4",
"YHX_XC_W", "YHX_XC_W2", "YHX_XC_L1", "YHX_XC_L2", "YHX_XC_L3"
};
string[][] arrayXmlNodeName_02 = new string[][]
{
new string[] { "YHX_XC_SHB_MAT", "YHX_XC_SHB_T" },
new string[] { "YHX_XC_LB_MAT", "YHX_XC_LB_T" },
new string[] { "YHX_XC_BB_MAT", "YHX_XC_BB_T" },
new string[] { "YHX_XC_LGJB_MAT", "YHX_XC_LGJB_T" },
new string[] { "YHX_XC_LGDB_MAT", "YHX_XC_LGDB_T" },
new string[] { "YHX_XC_XHB_MAT", "YHX_XC_XHB_T" }
};
string filePath = Form1.getProjectFilePath();
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
//xmlDoc.Load(filePath);
using (System.IO.FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (System.IO.StreamReader sr = new StreamReader(fs, Encoding.GetEncoding(936)))
{
var strXml = sr.ReadToEnd();
xmlDoc.LoadXml(strXml);
}
} var nodeRoot = xmlDoc.SelectSingleNode("/Root/xc");
nodeRoot.RemoveAll();
Action<string> action = delegate (string ele)
{
var nodeTemp = xmlDoc.CreateElement(ele);
Control control = this.Controls.Find(ele, true)[0];
if (control.GetType() == typeof(ComboBox))
{
nodeTemp.InnerText = (control as ComboBox).SelectedValue.ToString();
}
else
{
nodeTemp.InnerText = control.Text;
}
nodeRoot.AppendChild(nodeTemp);
};
Action<string[]> action2 = delegate (string[] ele)
{
Array.ForEach<string>(ele, action);
};
Array.ForEach<string>(arrayXmlNodeName_01, action);
Array.ForEach<string[]>(arrayXmlNodeName_02, action2);
xmlDoc.Save(filePath);
MessageBox.Show("保存成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
XmlDocument.load 读文件报异常:文件正被其它线程使用,解决方法的更多相关文章
- 解压tar.gz文件报错gzip: stdin: not in gzip format解决方法
解压tar.gz文件报错gzip: stdin: not in gzip format解决方法 在解压tar.gz文件的时候报错 1 2 3 4 5 [Sun@localhost Downloads] ...
- vs2015 系统找不到指定的文件(异常来自HRESULT:0x80070002)问题的解决方法
vs2015 创建mvc项目时,弹出错误信息内容(系统找不到指定的文件(异常来自HRESULT:0x80070002)) 弹出窗体如下图所示: 导致整个原因是:未安装NuGet包 解决方法: 1)打开 ...
- MyEclipse打开JSP文件报"Failed to create the part's controls"解决方法汇总
有时候,打开别人的开发环境中导过来的项目的JSP文件,会出现“Failed to create the part's controls”的错误! 解决的方法有: 方法1:关闭myeclipse的jsp ...
- 第一次打开pycharm运行python文件报错”No Python interpreter selected“问题的解决办法
前面没有细讲,这里细述一下安装pycharm后,第一次打开pycharm运行python文件报错"No Python interpreter selected"问题的解决办法. 出 ...
- 转:导出csv文件数字会自动变科学计数法的解决方法
导出csv文件数字会自动变科学计数法的解决方法 其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科 ...
- string.Format出现异常"输入的字符串格式有误"的解决方法
string.Format出现异常"输入的字符串格式有误"的解决方法 今天在做项目时,碰到一个很奇怪的问题,我使用string.Format居然报“输入的字符串格式有误”的错误,我 ...
- Tomcat报异常:Too many open files 的解决之路
http://www.linuxeye.com/Linux/2781.html Tomcat报 Jul 21, 2015 8:45:23 AM org.apache.tomcat.util.net.J ...
- Linux文件虚拟机系统只读Read-only file system的快速解决方法
问题描述:上周公司的私有云(底层架构是Openstack+KVM,目前稳定性还不够好,开发团队在改进中)一个计算节点挂掉,之后恢复后发现这个计算节点的所有Linux系统都变成只读了,复制文件提示:Re ...
- .NET上传大文件时提示Maximum request length exceeded错误的解决方法
使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...
- Office 2010 打开文件后所有的格式成了时间的解决方法
最新不知道什么原因,每一个 Excel 文件打开后,时需的数据都成了时间格式. 而且改都改不了,改了后第二次打开又成了这个样子. 最后找到解决方法. 如下动画,将 [$F400] 数据格式删除就可以. ...
随机推荐
- struts2学习1
struts2使用优势 自动封装参数 参数校验 结果的处理(转发|重定向) 国际化 显示等待页面 表单的防止重复提交 struts2具有更加先进的架构以及思想 使用拦截器 struts2的历史 str ...
- 海康威视摄像头+OpenCV+VS2017 图像处理小结(二)
海康威视摄像头+OpenCV+VS2017 图像处理小结(二) https://blog.csdn.net/o_ha_yo_yepeng/article/details/79825648 目录 一.海 ...
- 剑指offer 6:链表(从头到尾打印链表)
链表的数据结构 struct ListNode { int value; ListNode* next; }; 那么在链表的末尾添加一个节点的代码如下: void insert(ListNode** ...
- [题解向] Luogu4092 [HEOI2016/TJOI2016]树
#\(\mathcal{\color{red}{Description}}\) \(Link\) 给定一棵以\(1\)为根的树,有两种操作: \(C: \ \ x\)给点\(x\)打上花标记. \(Q ...
- python3 修改excel 单元格的值(xlsx)
excel code #coding=utf- import os.path import os from openpyxl.reader.excel import load_workbook # e ...
- vue-echarts在vue中的使用
安装依赖: [win]npm install echarts vue-echarts [mac]sudo npm install echarts vue-echarts Vue-ECharts 默认在 ...
- Oracle_创建自增
create sequence SEQ_ChamberMapping_ID minvalue maxvalue start with increment by nocache order; CREAT ...
- 安装kafka + zookeeper集群
系统:centos 7.4 要求:jdk :1.8.x kafka_2.11-1.1.0 1.绑定/etc/hosts 10.10.10.xxx online-ops-xxx-0110.10 ...
- OpenCV+TensorFlow图片手写数字识别(附源码)
初次接触TensorFlow,而手写数字训练识别是其最基本的入门教程,网上关于训练的教程很多,但是模型的测试大多都是官方提供的一些素材,能不能自己随便写一串数字让机器识别出来呢?纸上得来终觉浅,带着这 ...
- 【RS】AutoRec: Autoencoders Meet Collaborative Filtering - AutoRec:当自编码器遇上协同过滤
[论文标题]AutoRec: Autoencoders Meet Collaborative Filtering (WWW'15) [论文作者]Suvash Sedhain †∗ , Aditya K ...