2011-02-14 84 views
3

如果服務器上存在文件,我希望能夠在我的C#Web應用程序中具有文本框警報。有任何想法嗎?這裏是C#的新手。因此,舉例來說,如果我有的text.txt(我知道,它總是要的text.txt)有人落入一個文件夾到文件服務器,我的Web應用程序頁面將使用定時器提醒我(或類似的東西)。ASP.NET文本框警報

回答

0

最好的方式來檢查,如果一個特定的文件存在,將File.Exists:

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

可以使用FileSystemWatcher類用於此目的。但是,它必須作爲客戶端應用程序(Windows窗體應用程序或服務)運行,而不是從Web應用程序(您無法從瀏覽器內訪問客戶端計算機)運行。

+0

有沒有一種簡單的方法可能在Web應用程序上顯示該文件在那裏?有點像列表視圖或什麼的?我需要能夠看到該文件或有某種方式知道它在Web應用程序中的位置,以及有關如何執行該操作的一些指導。 – GabrielVa 2011-02-14 14:17:25

+0

如果要檢查文件是否在自己的服務器中刪除,然後確認你可以再次使用FileSystemWatcher的..而當事件發生處理,並反映在您的webpage..you可以使一個Ajax調用換做這個 – 2011-02-14 14:20:33

+0

如果你還想要別的東西..擴大你的整個場景..我可能會想到你想做什麼。 – 2011-02-14 14:21:35

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"); 
       } 

     } 

希望這將有助於

2

你的web應用程序正在運行在Web服務器上,這可能是在某個鎖定的服務器機房。顯示彈出式對話框不會有任何好處,因爲沒有人會看到它。

你想要的是顯示在客戶端對話框(即在Web瀏覽器在看你的網頁)。要做到這一點,你必須使用JavaScript;具體來說就是alert函數。

但現在你已經有了一個溝通的問題:你的客戶端JavaScript需要能夠詢問文件是否存在服務器。可能最好的辦法是在JavaScript中創建一個定時器(setInterval),它向服務器發送一個AJAX請求。你會在服務器上有一個「頁面」 - 一些.aspx文件 - 它不是HTML,而是返回一些代表文件是否存在的簡單代碼(可能和「0」或「1」一樣簡單)。然後,您的JavaScript可以將該「頁面」內容加載到變量中,檢查該變量,並知道是否顯示警報。

至於如何做AJAX,你要使用圖書館像jQuery。如果你還沒有選擇一個庫,然後閱讀它的文檔,看看如何做AJAX請求。

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!"); 
}