Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用ReadXml数据集方法读取XML文件_C#_Asp.net_Xml_Dataset_Filenotfoundexception - Fatal编程技术网

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”);
。还要检查文件名指定,甚至从目录中复制名称