StreamReader( 打开文件无法关闭

zestsnake 2017-10-20 05:26:08

protected void Button3_Click(object sender, EventArgs e)
{
// 先判断文件是否存在
string filepath = "";
string filename = "";
string riqi = "";
riqi = DateTime.Now.ToString("MM") + DateTime.Now.Date.ToString("dd");
filename = "a11003_" + riqi + ".txt"; //完整的文件名;
string savePath = "upfiles\\" + filename;//Server.MapPath 获得虚拟服务器相对路径
if (!File.Exists(Server.MapPath(savePath)))
{
Common.ShowMessage.Show(Page, "Error", "文件不存在,请确认是否上传!");
return;
}
else
{
//这里开始读文件
ReadFile(savePath);

}
}



public void ReadFile(string Path)
{

string strLine = "";
int i = 0;
string account = "";
string account_name = "";
double jfye = 0;
double dfye = 0;
double jfjs = 0;
double dfjs = 0;

string cis = "";
string bbh = "";
string bz = "";
string kmh = "";
string c_date = ""; //日期

// try
// {
StreamReader sr = new StreamReader(Server.MapPath(Path), Encoding.GetEncoding("GB2312"));
strLine = sr.ReadLine().ToString().Trim();
string[] result;
while (strLine != null)

{

result = Regex.Split(strLine.ToString().Trim(), @"\s+");
//分离出每个字段 保证金要特殊处理
account = result[0].Trim();
account_name = result[1].Trim();
if (result[0] == "ACCNO") //标题直接踢了
{
strLine = sr.ReadLine().ToString().Trim();
continue;
}

if (account_name != "保证金户")
{

jfye = Convert.ToDouble(result[4].Trim());
dfye = Convert.ToDouble(result[5].Trim());
jfjs = Convert.ToDouble(result[6].Trim());
dfjs = Convert.ToDouble(result[7].Trim());
bz = result[8].Trim();
kmh = result[9].Trim();
bbh = strLine.Trim().Substring(strLine.Trim().Length - 4, 4);



}


// else
// {


// }

Response.Write(bbh+ " "+ result[0].ToString() +" "+ result[1].ToString() +" " + result[5].ToString());
Response.Write("<br>");
strLine = sr.ReadLine();



}
// Response.Write(i);
Response.Write("aaaaaaaaaaaaaa");
sr.Dispose();
sr.Close();

Response.Write("ssssssssssss");
// }
// catch
// {
//
//
// }

}




当文件加载完后,再用记事本想修改下,提示“文件被替他程序打开”
...全文
499 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
emnil529 2017-11-05
  • 打赏
  • 举报
回复
sr.Close(); sr.Dispose(); 你执行顺序错了,Dispose()后sr就指向null了。
k. 2017-10-24
  • 打赏
  • 举报
回复
using(StreamReader sr = new StreamReader(Server.MapPath(Path), Encoding.GetEncoding("GB2312"));) { } 试一下` 还有,打个断点到Close,看到了没.
zestsnake 2017-10-23
  • 打赏
  • 举报
回复
顶一下顶一下
一个破人 2017-10-23
  • 打赏
  • 举报
回复
用共享模式打开文件;
zestsnake 2017-10-22
  • 打赏
  • 举报
回复
引用 8楼倦怠 的回复:
引用 7 楼 zestsnake 的回复:
[quote=引用 6楼倦怠 的回复:]你这是B/S程序吧?
是的
提醒一下,B/S相当于多线程,或者是多进程程序。[/quote]那应该怎么处理呢,请指教,目前正在调试,只有我一个人在使用
真相重于对错 2017-10-22
  • 打赏
  • 举报
回复
引用 7 楼 zestsnake 的回复:
引用 6楼倦怠 的回复:
你这是B/S程序吧?
是的
提醒一下,B/S相当于多线程,或者是多进程程序。
zestsnake 2017-10-22
  • 打赏
  • 举报
回复
引用 6楼倦怠 的回复:
你这是B/S程序吧?
是的
真相重于对错 2017-10-22
  • 打赏
  • 举报
回复
你这是B/S程序吧?
zestsnake 2017-10-21
  • 打赏
  • 举报
回复
顶一下顶一下
zestsnake 2017-10-21
  • 打赏
  • 举报
回复
引用 4楼mirror030 的回复:
在进程里查找一个,应该 能找到包含有这项目名字的进程.杀掉试试. 这个代码变量命名好奇怪,不容易看懂.文件操作可以在using(){}里做
您指的是哪个命名?
mirrorspace 2017-10-21
  • 打赏
  • 举报
回复
在进程里查找一个,应该 能找到包含有这项目名字的进程.杀掉试试. 这个代码变量命名好奇怪,不容易看懂.文件操作可以在using(){}里做
wangxuebonihao 2017-10-21
  • 打赏
  • 举报
回复
看的眼花。。只能帮你顶一下了
zestsnake 2017-10-20
  • 打赏
  • 举报
回复
浏览器,VS 2008都关了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧