C# 復制文件和文件夾


因為有好多台服務器,每次都要手動進行備份,有點麻煩,而且容易出錯,所以寫了下面這個用程序來備份,比較簡單,就是用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 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 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM