C# 能够在ASP.NET中包含文件,但不检查文件是否存在

C# 能够在ASP.NET中包含文件,但不检查文件是否存在,c#,asp.net,include,file-exists,C#,Asp.net,Include,File Exists,我想在我的页面中包含某些文件。 我并不总是确定它们是否存在,所以我必须检查它们是否存在。(您可能知道,否则页面会崩溃) 测试内容包括: 当include起作用时,检查文件是否存在的代码不起作用 如果我删除此代码: <% bool exists; exists = System.IO.File.Exists("/extra/file/test.txt"); %> 一切正常。 我也试着把它放到块中,但还是失败了。试试看 exists = System.IO.File.E

我想在我的页面中包含某些文件。 我并不总是确定它们是否存在,所以我必须检查它们是否存在。(您可能知道,否则页面会崩溃)


测试内容包括:
当include起作用时,检查文件是否存在的代码不起作用

如果我删除此代码:

<% bool exists;
   exists = System.IO.File.Exists("/extra/file/test.txt");
%> 

一切正常。 我也试着把它放到
块中,但还是失败了。

试试看

exists = System.IO.File.Exists(Server.MapPath("~/extra/file/test.txt"));
试一试

服务器端包含(SSI)在代码之前执行,所以不能这样做

如果包含的文件只是静态信息(即没有服务器端代码),则可以执行以下操作:

string file = Server.MapPath("~/extra/file/test.txt");
if(System.IO.File.Exists(file))
{
    Response.Write(System.IO.File.ReadAllText(file));
}
服务器端包含(SSI)在代码之前执行,所以不能这样做

如果包含的文件只是静态信息(即没有服务器端代码),则可以执行以下操作:

string file = Server.MapPath("~/extra/file/test.txt");
if(System.IO.File.Exists(file))
{
    Response.Write(System.IO.File.ReadAllText(file));
}

服务器端包含是旧ASP代码,不能是有条件的。但是,由于您使用的是C#ASP.NET代码,因此您只需读取文件并使用C#而不是服务器端的include将其输出即可


在这里,如果您的代码出现错误,可能是因为您没有正确配置其他东西来使用它(可能是安全设置?)

服务器端包含是旧ASP代码,不能是有条件的。但是,由于您使用的是C#ASP.NET代码,因此您只需读取文件并使用C#而不是服务器端的include将其输出即可


在这里,如果您的代码出现错误,可能是因为您没有正确配置其他东西来使用它(可能是安全设置?)

确实是Server.MapPath做的。瓷砖确实在结构中添加了一些贴图,所以我不得不将其删除,但仍然:成功。Server.MapPath确实做到了。瓷砖确实为结构添加了一些贴图,所以我不得不删除它,但仍然是:成功。