在ASP.NET中使用FileSystemWatcher来监控文件目录

在ASP.NET中我们有时会访问文件,但我们如果不想让代码每次都重新读取文件内容的话,我们可以使用FileSystemWatcher,这在有些情况是是很不错的选择,以下代码演示如何在ASP.NET中使用FileSystemWatcher来监控文件目录,以及在这种监控方式下IIS如何管理Appdomain以及Thread。

首先,我们利用Application_Start事件来在整个Application中创建唯一的FileSystemWatcher实例,并设置关联的监听方法,在监听方法中我们重新读取文件夹信息,并保存在Application变量中。

Global.asax

<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.Threading" %>

其次,我们创建一个页面来显示保存在Application变量中的文件夹等的信息,以验证FileSystemWatcher是否起效。

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>title>
head>
<body>
<form id="form1" runat="server">
    <div>
    <asp:Label ID="Label1" runat="server" Text="File list:">asp:Label>
    div>
    <asp:ListBox ID="lstFile" runat="server" Width="583px">
    asp:ListBox>
    <br />
    <asp:Label ID="Label2" runat="server" Text="Event list:">asp:Label>
    <br />
    <asp:ListBox ID="lstEvent" runat="server" Width="579px">
    asp:ListBox>
form>
body>
html>

Default.aspx.cs

using System;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lstFile.DataSource = Application["FileList"];
lstFile.DataBind();
lstEvent.DataSource = Application["EventList"];
lstEvent.DataBind();
}
}

 

转载于:https://www.cnblogs.com/zanxiaofeng/archive/2011/01/05/1926134.html

你可能感兴趣的:(c#,ui,xhtml)