能够在 ASP.NET 中包含文件,但无法检查它是否存在

发布于 2024-08-18 19:44:23 字数 614 浏览 9 评论 0原文

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

<%@ Page Language="C#" %> 

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

Test include:<br>
<!--#include file="/extra/file/test.txt"-->

</body>
</html>

</html>

虽然包含有效,但检查文件是否存在的代码却不起作用。

如果我删除此代码:

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

一切运行正常。 我还尝试将其放入

I want to include certain files in my page.
I'm not always sure if they exists, so I have to check if they do. (Otherwise the page crashes, as you probably know)

<%@ Page Language="C#" %> 

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

Test include:<br>
<!--#include file="/extra/file/test.txt"-->

</body>
</html>

</html>

While the include works, the code checking if the file exists does not.

If I remove this code:

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

Everything runs fine.
I also tried putting it in a <script runat="server"> block, but it still failed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

葬花如无物 2024-08-25 19:44:23

尝试

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

Try

exists = System.IO.File.Exists(Server.MapPath("~/extra/file/test.txt"));
一身骄傲 2024-08-25 19:44:23

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

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

Server-side includes are legacy ASP code and cannot be conditional. However, since you are using C# ASP.NET code, you can just read the file and output it using C# instead of the server-side include.

Here, if you get an error with your code, it is probably because something else is not configured properly for you to use it (security settings, maybe?).

秋风の叶未落 2024-08-25 19:44:23

服务器端包含(SSI)在您的代码之前执行,因此您不能这样做。

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

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

Server side includes (SSI) are executed before your code, so you can't do this way.

If your included file is just static information (i.e. without server-side code), you can do something like:

string file = Server.MapPath("~/extra/file/test.txt");
if(System.IO.File.Exists(file))
{
    Response.Write(System.IO.File.ReadAllText(file));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文