0

我有以下方法:

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:\ 中,我在其他位置尝试过,同样发生了。也尝试不使用静态。

如果我不使用File.Exists(), FileNotFoundException 正在抛出。

4

2 回答 2

1

使用您声明文件的方式

var dir = @"ProductsCookieData.xml";

您的文件必须与您的代码/当前网页位于同一目录中,而不是在 C: 中。您可以授予 C:\ 权限并将您的代码更改为

var dir = @"C:\ProductsCookieData.xml";

有时,可以将文件复制到您的应用程序文件夹、根目录或特殊文件夹,并使用 Server.MapPath 访问

var dir = Server.MapPath("~/ProductsCookieData.xml");
于 2012-11-22T12:59:33.173 回答
0

您需要指定文件的完整路径。目前,您只提供一个相对路径,该路径将相对于当前工作目录进行解析。

如果您的文件位于 C:\ 的根目录中,则将代码更改为:

string dir = @"C:\ProductsCookieData.xml";
于 2012-11-22T12:58:55.537 回答