C# 无法使用ReadXml数据集方法读取XML文件
我有以下方法:C# 无法使用ReadXml数据集方法读取XML文件,c#,asp.net,xml,dataset,filenotfoundexception,C#,Asp.net,Xml,Dataset,Filenotfoundexception,我有以下方法: public static DataSet BringProducts() { DataSet dataSet = new DataSet(); var dir = @"ProductsCookieData.xml"; if (File.Exists(dir)) //without File.Exists, same problem. { dataSet.ReadXml(dir); } return dataS
public static DataSet BringProducts()
{
DataSet dataSet = new DataSet();
var dir = @"ProductsCookieData.xml";
if (File.Exists(dir)) //without File.Exists, same problem.
{
dataSet.ReadXml(dir);
}
return dataSet;
}
该文件存在,但该方法从未看到它。该文件位于C:\,我在其他位置尝试过,同样的情况也发生了。也尝试不使用静态
如果不使用
文件.Exists()
,则会引发FileNotFoundException。您需要指定文件的完整路径。目前,您只提供了一个相对路径,该路径将相对于当前工作目录进行解析
如果文件位于C:\的根目录中,请将代码更改为:
string dir = @"C:\ProductsCookieData.xml";
用你声明文件的方式
var dir = @"ProductsCookieData.xml";
您的文件必须与代码/当前网页位于同一目录中,而不是C:。您可以将权限授予C:\并将代码更改为
var dir = @"C:\ProductsCookieData.xml";
有时,可以将文件复制到应用程序文件夹、根文件夹或特殊文件夹,并使用Server.MapPath进行访问
var dir = Server.MapPath("~/ProductsCookieData.xml");
如果抛出
FileNotFound
,则该文件在您认为的位置不存在。这是ASP.Net还是Windows应用程序?它是一个ASP.Net Web表单,后面有C#代码。您是否尝试在该文件上创建文件流并将该流的引用传递给readxml?您还可以尝试将文件的绝对路径传递给dataSet.ReadXml()-call吗?您有权访问C:\?您的Web应用程序位于哪个文件夹?@Aschratt with FileStream相同的情况下,找不到该文件。string dir=@“C:\productScookeData.xml”;FileStream fileName=newfilestream(dir,FileMode.Open);没有,server.mappath没有找到它。我不知道该怎么办。出现此错误两个小时:(Server.MapPath
如果不在web应用程序文件夹层次结构中,将找不到它。它不会超出web应用程序目录我将它放在任何地方、应用程序文件夹内、外部等。我取出文件.Exist(),使用Server.MapPath,最后他找到了它。谢谢大家把它放在您的web.config
所在的文件夹中,然后尝试var dir=Server.MapPath(“~/productScookeData.xml”);
。还要检查文件名指定,甚至从目录中复制名称