写Xml文件的问题

progame 2003-04-27 05:28:45
原来是用DataSet写两个XML文件的


一切正常

我现在有一个新的xml文件
由于数据组织不一样,所以用XmlDocument读写

当然这三个文件的读写都不会同时进行

但现在一旦用了XmlDocument读写
它是正常的

可另外两个DataSet写xml文件进出错

错误提示:
未找到路径 "文件路径" 的一部分

这是怎么回事啊?


XmlDocumnet写代码如下:
public bool Export(CFolderItem folder,string filepath)
{
XmlDocument xDoc = new XmlDocument();
XmlNode xNode;

xDoc = new XmlDocument();

// 添加声明
xNode = xDoc.CreateNode(XmlNodeType.XmlDeclaration,"","");
xDoc.AppendChild(xNode);

// 添加文件夹和文件
AppendFolder(xDoc,folder,null);

// 保存
xDoc.Save(filepath);

return true;

}

XmlDocumnet多次写文件也没事,但只要它写过文件

另外的DataSet写文件就报上面的错

注:操作的是不同文件
...全文
33 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
progame 2003-04-27
  • 打赏
  • 举报
回复
是的,我一开始也不知道是这个错
saucer 2003-04-27
  • 打赏
  • 举报
回复
you didn't mention they are in different directory and cannot tell from your sample code either

ds.ReadXml("folder.xml");
...
xDoc.Save("test.xml");
progame 2003-04-27
  • 打赏
  • 举报
回复
谢谢

是这样的,我使用了"..\.."这样的文件夹路径

结果我操作另一个文件的时候更改了当前目录
saucer 2003-04-27
  • 打赏
  • 举报
回复
I cannot reproduce your problem
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
知道了,是当前默认目录被改变的原因

谢谢
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
这样不出错

// 测试DataSet和XmlDocument是否有冲突
DataSet ds= new DataSet();
ds.ReadXml("folder.xml");
ds.WriteXml("folder.xml",XmlWriteMode.WriteSchema);
// XmlDocument xDoc = new XmlDocument();
// xDoc.Load("file.xml");
XmlDocument xDoc = new XmlDocument();
XmlNode xNode;
xDoc = new XmlDocument();
xNode = xDoc.CreateNode(XmlNodeType.XmlDeclaration,"","");
xDoc.AppendChild(xNode);
xNode = xDoc.CreateElement("test");
xDoc.AppendChild(xNode);

xDoc.Save("test.xml");
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
// 测试DataSet和XmlDocument是否有冲突
DataSet ds= new DataSet();
ds.ReadXml("folder.xml");
ds.WriteXml("folder.xml",XmlWriteMode.WriteSchema);
// XmlDocument xDoc = new XmlDocument();
// xDoc.Load("file.xml");
XmlDocument xDoc = new XmlDocument();
XmlNode xNode;

xDoc = new XmlDocument();

// 添加声明
xNode = xDoc.CreateNode(XmlNodeType.XmlDeclaration,"","");
xDoc.AppendChild(xNode);
xDoc.Save("test.xml");


这样出错

出错信息:系统错误

出错位置,居然是xDoc.Save("test.xml");下一行
就是函数结束的}位置
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
刚刚测试了一下
// 测试DataSet和XmlDocument是否有冲突
DataSet ds= new DataSet();
ds.ReadXml("folder.xml");
XmlDocument xDoc = new XmlDocument();
xDoc.Load("file.xml");
xDoc.Save("file.xml");
ds.WriteXml("folder.xml");

居然没问题

这个郁闷啊
progame 2003-04-27
  • 打赏
  • 举报
回复
如果可能的话,我可以将代码发给老大运行看看是不是也有同样的错误发生
progame 2003-04-27
  • 打赏
  • 举报
回复
AB文件和C文件读写间没有任何关联的

progame 2003-04-27
  • 打赏
  • 举报
回复
OK
if (this.m_DataSet == null)
this.m_DataSet = new DataSet();

try
{
// 读取文件
this.m_DataSet.ReadXml(this.m_FilePath);


写:

this.m_DataSet.WriteXml(this.m_FilePath);


没有用XmlDocument时这些都是工作得好好的
saucer 2003-04-27
  • 打赏
  • 举报
回复
can you show your 用DataSet读取A B文件 code ?
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
C#

当然有,因为我不用XDocument写C文件时

用DataSet读取A B文件都是正常

当我用了XmlDocumnent后
DataSet.WriteXml就会出现上述图中的错误
saucer 2003-04-27
  • 打赏
  • 举报
回复
仔细看一下路径,你确认有那个路径么?如果有那个路径,你的程序是否有权限(假
如你用ASP.NET的话)?
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
错误截图在:

http://jinesc.6600.org/bbs/update/20034/27204161.gif

foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
up
0dreamcity 2003-04-27
  • 打赏
  • 举报
回复
up
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
再up
foolflyfish 2003-04-27
  • 打赏
  • 举报
回复
自己UP
progame 2003-04-27
  • 打赏
  • 举报
回复
哪位可以做做测试是不是一样
加载更多回复(6)

110,539

社区成员

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

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

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