c#中Xml路径出现问题
OpenFileDialogofd=newOpenFileDialog();ofd.Filter="exe文件|*.exe|所有文件|*.*";//文件过滤1.Dialo...
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "exe文件|*.exe|所有文件|*.*";//文件过滤
1. DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
//这里做其它操作
}
else
{
return;
}
XmlDocument xd = new XmlDocument();
try
{
2. xd.Load("soso.xml");//xml文件名
}
catch (Exception ex)
{
return;
}
注:这里的文件打开对话框的作用不是用来打开xml文件的,而是用来打开其它文件,
出现的问题:如果不打开"文件对话框",xd.Load("相对路径")能正常使用,如果需要用到"文件打开对话框"做其它操作的
话,xd.Load("相对路径")这里就报错,原因是因为:此时的xd.Load()的路径就变成了"文件打开对话框"的路径加原相对路径
,这样肯定会报错,唯一解决办法:xd.Load("使用绝对路径");但这种实际程序是不允许这样做的,请问有什么办法解决? 展开
ofd.Filter = "exe文件|*.exe|所有文件|*.*";//文件过滤
1. DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
//这里做其它操作
}
else
{
return;
}
XmlDocument xd = new XmlDocument();
try
{
2. xd.Load("soso.xml");//xml文件名
}
catch (Exception ex)
{
return;
}
注:这里的文件打开对话框的作用不是用来打开xml文件的,而是用来打开其它文件,
出现的问题:如果不打开"文件对话框",xd.Load("相对路径")能正常使用,如果需要用到"文件打开对话框"做其它操作的
话,xd.Load("相对路径")这里就报错,原因是因为:此时的xd.Load()的路径就变成了"文件打开对话框"的路径加原相对路径
,这样肯定会报错,唯一解决办法:xd.Load("使用绝对路径");但这种实际程序是不允许这样做的,请问有什么办法解决? 展开
展开全部
方法有二:
1.使用Application.StartupPath来将相对路径转换成绝对路径
代码:xd.Load(Path.Combine(Application.StartupPath, "soso.xml"));
2.使用RestoreDirectory属性要求OpenFileDialog不要更改初始路径
代码:
ofd.RestoreDirectory=true;//这一句,RestoreDirectory属性的默认值为false 所以你选择后当前目录会发生变化
1.使用Application.StartupPath来将相对路径转换成绝对路径
代码:xd.Load(Path.Combine(Application.StartupPath, "soso.xml"));
2.使用RestoreDirectory属性要求OpenFileDialog不要更改初始路径
代码:
ofd.RestoreDirectory=true;//这一句,RestoreDirectory属性的默认值为false 所以你选择后当前目录会发生变化
展开全部
.net下的“相对路径”,其实是等价于:Path.Combine(Environment.CurrentDirectory,"相对路径");
而我们知道Environment.CurrentDirectory会变化,根据用户的操作。
解决方法是:
xd.Load("soso.xml");
修改为
string path = Path.Combine(Application.StartupPath, "soso.xml");
xd.Load(path);
Application.StartupPath 是应用程序启动的路径。
或者使用
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path);
功能类似。
而我们知道Environment.CurrentDirectory会变化,根据用户的操作。
解决方法是:
xd.Load("soso.xml");
修改为
string path = Path.Combine(Application.StartupPath, "soso.xml");
xd.Load(path);
Application.StartupPath 是应用程序启动的路径。
或者使用
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path);
功能类似。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
xd.Load(Server.MapPath("..\xml.config"));
Server.MapPath这个方法会把虚拟路径变成绝对路径
Server.MapPath这个方法会把虚拟路径变成绝对路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询