2009-05-18 61 views
2

我需要創建一個允許用戶指定本地網絡文件夾複製到生產位置的Intranet網站(頁面)。目前這是在批處理文件中使用xcopy手動完成的。以編程方式批量文件在夜間複製

我在尋找的是觸發複製的方法,以便在半夜完成複製文件的方法。我想我可以從我的應用程序運行xcopy,但這是一個好辦法嗎?我應該使用System.IO名稱空間對象來複制文件嗎?有更好的方式嗎?

該應用程序將用C#和ASP.NET編寫。我們目前使用.NET 2.0/3.0,但如果包含更好的解決方案庫,則不會使用.NET 3.5。

基本上用戶會指出他們需要複製哪個網絡文件夾以及其他一些商業信息。指定的文件夾和所有子文件夾需要複製到目標位置(未由用戶設置)。

如果已經有一個應用程序出現這樣做,我也不反對。我不需要編寫已經存在的東西。

+0

謝謝ChirsF欣賞編輯。 – Brettski 2009-05-18 16:34:36

回答

1

對於安排部可以使用Quartz.NET

它不會很難編寫使用System.IO在C#中的XCOPY操作。事實上,這會給你最大程度的靈活性。

+0

與xcopy相比性能如何,它會在任何地方接近,並且有沒有辦法來驗證複製的文件? – Brettski 2009-05-18 16:38:29

2

對於第一個問題(在午夜複製),我建議建立一個運行現有的批處理文件計劃任務(或任何程序,對於這個問題)

+0

例如:c:\ Windows \ system32 \ schtasks.exe/Create/st 00:01:00/tr「c:\ myuser \ bin \ nightwork.cmd」/ sc一次/ tn NameForScheduledTask。如果您對該字符串執行Process.Start(),則您將安排任務在上午12:01運行。 – Cheeso 2009-05-18 14:53:45

1

最簡單的解決辦法是換你XCOPY命令在一個命令文件中,並安排它在您希望作爲Web服務器上的計劃任務運行時運行。

如果你想得到花哨,你可以寫一個web界面的任務調度 - 我敢肯定,我也看過這種類型的應用程序的開源示例。

1

我認爲你應該考慮使用Windows Powershell做你的複製(或者其他腳本語言,如果你願意的話),由Windows Scheduled Tasks驅動。雖然你可以編寫一個應用程序來做到這一點,但我認爲擁有其他人可以編輯的腳本會更加可維護。

0

你已經標記了這個ASP,但如果你不挑剔我建議組合Windows內置計劃任務和rsync。如果真的必須通過內聯網頁面實現自動化(並且您在IE中),那麼需要某種形式的ActiveX或可下載的腳本/應用程序來配置日程安排。