首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dataset ReadXML方法流与字符串

Dataset ReadXML方法流与字符串
EN

Stack Overflow用户
提问于 2010-07-24 03:39:33
回答 3查看 1.5K关注 0票数 0

我的代码调用DataSet类的ReadXml方法并传入一个文件名ReadXml(strFileName)。有时,这会抛出System.IO.IOException,因为该文件正被另一个进程使用。

如果我将代码更改为使用ReadXml(流)方法,并像这样传递一个FileStream:

代码语言:javascript
复制
using(FileStream fs = new FileStream(this.filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ))
{
     MyDS.ReadXxml(FileStream);
}

这会阻止IOException的发生吗?当您简单地传入一个文件名时,在幕后发生了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-24 04:21:08

如果以字符串形式传入文件名,则DataSet类将为您创建一个FileStream对象。接受Stream作为参数的重载方法允许您传入一个Stream对象(如果您有一个对象而不是一个文件名)。

接受字符串作为参数的版本将简单地创建一个FileStream,并将其传递到接受流作为参数的版本。

您应该使用适合您拥有的数据的重载。在本例中是字符串。

票数 0
EN

Stack Overflow用户

发布于 2010-07-24 03:42:33

最有可能的情况是,它们都打开一个FileStream并将其传递给XmlReader.Create,然后使用XmlReader处理数据。

票数 0
EN

Stack Overflow用户

发布于 2010-07-24 03:57:21

“有时这会抛出System.IO.IOException,因为该文件正由另一个进程使用。”

正如您所说的,它抛出了一个异常,因为该文件正被另一个进程使用。您对此无能为力-停止其他进程使用该文件,它将再次工作。

如果您认为这是假的,那么您应该使用问题中的using构造检查所有的FileStreams是否正确关闭。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3321781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档