2012-07-11 144 views
0

我使用下面的代碼:複製目錄,但只更新文件

my.Computer.FileSystem.CopyDirectory(path, path, true) 

不過,我覺得這個副本的整個目錄,即使一個單一的文件目錄中的改變。這是真的?

如果是這樣,是否有任何驗證我可以說只更新文件不是整個文件夾?我的應用程序將在一臺網絡上運行,每臺計算機大約有300臺計算機,每臺計算機拷貝超過300臺,因此即使只有一個文件發生更改,它也可能導致網絡崩潰或速度減慢。

回答

2

您可以嘗試在隱藏的命令提示符下執行命令XCOPY。

例如:

xcopy d:\temp d:\temp2 /D /Y 

將拷貝從源目錄到目標目錄每一個修改過的文件,而不要求重寫確認

你可以寫這樣的事情

 Dim startInfo As New ProcessStartInfo("cmd.exe") 
     startInfo.WindowStyle = ProcessWindowStyle.Hidden 
     startInfo.Arguments = "/C xcopy d:\temp d:\temp2 /D /Y" 
     Dim proc = new Process() 
     proc.StartInfo = startInfo 
     proc.Start() 
+0

喔輝煌DO我用這個而不是複製一個?這兩個d:\它們是源路徑還是目的路徑? 什麼是d:部分......對不起,這是第一次我做了這樣的事情 – TeamGB 2012-07-11 11:31:53

+0

當然d:\ temp和d:\ temp2是源文件夾和目標文件夾,根據您的規格進行更改。/D表示只複製最新的文件。/Y的意思是,不要提示我,並覆蓋dest文件 – Steve 2012-07-11 12:24:29

+0

我似乎可以得到它的工作:/我發表另一個問題,問我做錯了什麼? – TeamGB 2012-07-11 13:46:16