因為有好多台伺服器,每次都要手動進行備份,有點麻煩,而且容易出錯,所以寫了下面這個用程式來備份,比較簡單,就是用C#複製檔案和檔案
View Code
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 Program10 {11 static void Main(string[] args)12 {13 //eg D:\publish14 //不用 ConfigurationManager而用下面這個是因為 FrameWork2.015 string sourceDir = ConfigurationSettings.AppSettings["SourcePath"].ToString();16 //eg D:\BackUp17 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 }