ASP.NET文本框警报

时间:2011-02-14 14:12:33

标签: c# .net filesystemwatcher

如果服务器上存在文件,我希望能够在我的C#Web应用程序中显示文本框警报。有任何想法吗?这里是C#的新手。所以,例如,如果我有 text.txt (我知道它总是 text.txt )有人将文件夹放入文件服务器,我的Web应用程序页面将使用计时器(或类似的东西)提醒我。

5 个答案:

答案 0 :(得分:2)

您的网络应用程序正在Web服务器上运行,该服务器可能位于某个锁定的服务器机房中。显示弹出对话框不会有任何好处,因为没有人会看到它。

您想要的是在客户端显示一个对话框(即,在Web浏览器中查看您的网页)。要做到这一点,你必须使用JavaScript;具体来说,alert功能。

但是现在你遇到了一个沟通问题:你的客户端JavaScript需要能够询问服务器文件是否存在。可能最好的做法是在JavaScript(setInterval)中创建一个向服务器发送AJAX请求的计时器。您将在服务器上有一个“页面” - 一些.aspx文件 - 而不是HTML,返回一些简单的代码(可能像“0”或“1”一样简单),指示文件是否存在。然后,您的JavaScript可以将“页面”内容加载到变量中,检查变量,并知道是否显示警报。

至于如何做AJAX,你会想要使用像jQuery这样的库。如果您还没有选择库,请阅读其文档以了解如何执行AJAX请求。

答案 1 :(得分:1)

您可以使用FileSystemWatcher类来实现此目的。但这必须作为客户端应用程序(Windows窗体应用程序或服务)运行,而不是从Web应用程序运行(您无法从浏览器中访问客户端计算机)。

答案 2 :(得分:1)

试试这个

string path = "C:\\TestFolder\\......."; // Path

DirectoryInfo directory = new DirectoryInfo(path);

 foreach (FileInfo file in directory.GetFiles())
        {

                if (file.Name == text.txt)
                {
                    MessMessageBox.Show("Text file exists");
                }

        }

希望它会有所帮助

答案 3 :(得分:1)

// TODO: Read up on FileSystemWatcher

FileSystemWatcher watcher = new FileSystemWatcher();

watcher.Path = @"C:\MyDirectory";
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.Deleted += new FileSystemEventHandler(watcher_Deleted);
watcher.Renamed += new RenamedEventHandler(watcher_Renamed)
watcher.Created += new FileSystemEventHandler(watcher_Created);

watcher.EnableRaisingEvents = true;
watcher.Filter = "*.txt"; // could also set it to "text.txt" or "*"

void watcher_Changed(object sender, System.IO.FileSystemEventArgs e))
{
    MessageBox.Show("Zomg " + e.FullPath +" has been changed!!");
}
private void fileWatcher_Renamed(object sender, System.IO.RenamedEventArgs e)
{
    MessageBox.Show(e.OldFullPath + " was renamed to " + e.FullPath);
}
private void fileWatcher_Deleted(object sender, System.IO.FileSystemEventArgs e)
{
    MessageBox.Show(e.FullPath + " was deleted!");
}
private void fileWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
{
    MessageBox.Show(e.FullPath + " was created!");
}

答案 4 :(得分:0)

检查单个特定文件是否存在的最佳方法是File.Exists:

if (File.Exists("c:\\test.txt"))
  //inform user