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] 数据格式删除就可以. ...
随机推荐
- thinkphp5.0 中简单处理微信支付异步通知
public function wx_notify(){ $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; libxml_disable_ent ...
- [Algorithm] 202. Happy Number
Write an algorithm to determine if a number is "happy". A happy number is a number defined ...
- ESA2GJK1DH1K升级篇: 升级STM32 预热: 单片机定时 使用 http 获取云端文本文件里面的内容,然后显示在液晶屏
前言: 实现功能概要 STM32使用AT指令控制Wi-Fi以TCP方式连接咱上节安装的Web服务器,然后使用http的get协议获取云端文本文件里面的内容, 然后把获取的数据显示在OLED液晶屏. ...
- [无效]网络流之Edmond-Karp算法
// 此博文为迁移而来,写于2015年2月2日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vr12.html UP ...
- 大数据(1)---大数据及HDFS简述
一.大数据简述 在互联技术飞速发展过程中,越来越多的人融入互联网.也就意味着各个平台的用户所产生的数据也越来越多,可以说是爆炸式的增长,以前传统的数据处理的技术已经无法胜任了.比如淘宝,每天的活跃用户 ...
- PHP重命名文件夹下的文件后缀名
PHP重命名文件夹下的文件后缀名<pre> public function zhuanhouzuiming(){ $lujings='upload/'; $filesnames = sca ...
- Mysql 表分区分类
针对Mysql数据库,表分区类型简析. [1]表分区类型 (1)Range分区:按范围分区.按列值的范围区间进行分区存储:比如:id小于10存储在一个分区:id大于10小于20存储在另外一个分区: ( ...
- vs2015 出现的错误lnk:200:-main已在ax.obj中定义
原因是:一个项目里只能有一个main函数, 如果出现 error:LNK200 的错误,那么需要检查你是不是有两个源代码文件中都定义了main函数. 解决方案: 把其中的一个main函数删掉
- C++连接SQL
1.引入ADO#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename( ...
- Prometheus 基于文件的服务发现
Prometheus 基于文件的服务发现 官方文档:https://github.com/prometheus/prometheus/tree/master/discovery 服务发现支持: end ...