如何用StreamReader读取已经打开的文件

anmeier923 2006-08-15 04:41:37
StreamReader csvSR = new StreamReader(csvFile, Encoding.GetEncoding(csvEncoding));

打开已经打开的文件时,发生异常.如何用StreamReader读取已经打开的文件
...全文
282 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jnwfh 2007-04-16
  • 打赏
  • 举报
回复
FileStream fs = new FileStream(csvFile,FileAccess.ReadWrite, FileMode.Open, FileShare.ReadWrite);
StreamReader csvSR = new StreamReader(fs, Encoding.GetEncoding(csvEncoding));
viena 2007-04-16
  • 打赏
  • 举报
回复
只要是共享方式打开的就没有问题~
wskwyspl 2007-04-16
  • 打赏
  • 举报
回复
把你要打开的文件设为只读属性,就可以了
anmeier923 2006-08-15
  • 打赏
  • 举报
回复
在本地打开.CSV,用StreamReader读取.CSV时出错
lookfeng 2006-08-15
  • 打赏
  • 举报
回复
如果已打开该文件的程序读文件时没有设共享,那你是没办法的!
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace HistoryMenu { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*.*(所有文件)|*.*";//设置打开文件格式 if (openFileDialog1.ShowDialog() == DialogResult.OK)//判断是否打开选择文件对话框 { StreamWriter s = new StreamWriter("Menu.ini", true);//实例化写入流对象 s.WriteLine(openFileDialog1.FileName);//向INI文件写入内容 s.Flush();//清除缓冲区 s.Close();//关闭写入流 System.Diagnostics.Process.Start(openFileDialog1.FileName);//打开选择的文件 } Form1_Load(sender, e);//重新加载菜单 } private void Form1_Load(object sender, EventArgs e) { 文件ToolStripMenuItem.DropDownItems.Clear();//清空菜单 ToolStripMenuItem menuitem1 = new ToolStripMenuItem("打开");//实例化打开菜单 文件ToolStripMenuItem.DropDownItems.Insert(0, menuitem1);//添加打开菜单 menuitem1.Click += new EventHandler(打开ToolStripMenuItem_Click);//为打开菜单指定单击事件 ToolStripMenuItem menuitem2 = new ToolStripMenuItem("退出");//实例化退出菜单 文件ToolStripMenuItem.DropDownItems.Insert(1, menuitem2);//添加退出菜单 StreamReader sr = new StreamReader("Menu.ini");//实例化读取流对象 int i = this.文件ToolStripMenuItem.DropDownItems.Count - 1;//定义历史记录位置 while (sr.Peek() >= 0)//从INI文件读取历史记录 { ToolStripMenuItem menuitem = new ToolStripMenuItem(sr.ReadLine());//实例化历史菜单 this.文件ToolStripMenuItem.DropDownItems.Insert(i, menuitem);//添加历史菜单 i++;//重新指定历史记录位置 menuitem.Click += new EventHandler(menuitem_Click);//为历史菜单指定单击事件 } sr.Close();//关闭读取流 } private void menuitem_Click(object sender, EventArgs e) { try { ToolStripMenuItem menu = (ToolStripMenuItem)sender;//获取菜单单击项 System.Diagnostics.Process.Start(menu.Text);//根据历史菜单打开指定文件 } catch { } } } }

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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