因為有好多台服務器,每次都要手動進行備份,有點麻煩,而且容易出錯,所以寫了下面這個用程序來備份,比較簡單,就是用C#復制文件和文件

1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.IO; 5 using System.Configuration; 6 7 namespace Copy 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //eg D:\publish 14 //不用 ConfigurationManager而用下面這個是因為 FrameWork2.0 15 string sourceDir = ConfigurationSettings.AppSettings["SourcePath"].ToString(); 16 //eg D:\BackUp 17 string targetDir = ConfigurationSettings.AppSettings["TargetPath"].ToString(); 18 Console.WriteLine("正在進行備份,請不要關閉窗口............."); 19 DirectoryCopy(sourceDir, targetDir); 20 Console.WriteLine("成功復制備份,按任意鍵關閉窗口............"); 21 Console.ReadKey(); 22 } 23 24 static void DirectoryCopy(string sourceDir, string targetDir) 25 { 26 if (!Directory.Exists(sourceDir)) 27 return; 28 if (!Directory.Exists(targetDir)) 29 return; 30 31 string sourceFolderName = sourceDir.Replace(Directory.GetParent(sourceDir).ToString(), "").Replace(Path.DirectorySeparatorChar.ToString(), ""); 32 33 if (sourceDir == targetDir + sourceFolderName) 34 return; 35 36 //要復制到的路徑 37 string tagetPath=targetDir + Path.DirectorySeparatorChar.ToString() + sourceFolderName; 38 if (Directory.Exists(tagetPath)) 39 { 40 Directory.Delete(tagetPath, true); 41 } 42 43 Directory.CreateDirectory(tagetPath); 44 45 //復制文件 46 string[] files = Directory.GetFiles(sourceDir); 47 for (int i = 0; i < files.Length; i++) 48 { 49 File.Copy(files[i], tagetPath+Path.DirectorySeparatorChar.ToString()+Path.GetFileName(files[i])); 50 } 51 //復制目錄 52 string[] dires = Directory.GetDirectories(sourceDir); 53 for (int j = 0; j < dires.Length; j++) 54 { 55 DirectoryCopy(dires[j], tagetPath); 56 } 57 } 58 } 59 }