首页 > 代码库 > C# Copy 文件

C# Copy 文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace DirectoryCopyExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string soureDirName;
            string destDirName;
            bool copySubDirs = true;
 
            List<string> soureList = new List<string>();
            List<string> destList = new List<string>();
 
            FileInfo soureFile=new FileInfo("soure.txt");
            FileInfo destFile=new FileInfo("dest.txt");
            StreamReader soureReader=new StreamReader(soureFile.OpenRead());
            StreamReader destReader=new StreamReader(destFile.OpenRead());
            string soureline;
            string destline;
            while ((soureline=soureReader.ReadLine())!=null)
            {
                soureList.Add(soureline);
                Console.WriteLine("SoureFile added the Url:"+soureline);
            }
            while ((destline = destReader.ReadLine()) != null)
            {
                destList.Add(destline);
                Console.WriteLine("DestFile added the Url:" + destline);
            }
            for (int i = 0; i < soureList.Count(); i++)
            {
                soureDirName = soureList[i];
                destDirName = destList[i];
                try
                {
                    DirectoryCopy(soureDirName, destDirName, copySubDirs);
                }
                catch (Exception ex)
                {
 
                    throw new Exception("Error Message is:"+ex.Message);
                }
                
            }
            
        }
 
        private static void DirectoryCopy(string soureDirName,string destDirName,bool copySubDirs)
        {
            DirectoryInfo dir = new DirectoryInfo(soureDirName);
            DirectoryInfo[] dirs = dir.GetDirectories();
            if (!dir.Exists)
            {
                throw new DirectoryNotFoundException("Source directory does not exist or could not be found: "+soureDirName);
            }
            if (!Directory.Exists(destDirName))
            {
                Directory.CreateDirectory(destDirName);
            }
            FileInfo[] files = dir.GetFiles();
            foreach (FileInfo file in files)
            {
                string temppath = Path.Combine(destDirName, file.Name);
                file.CopyTo(temppath,true);
            }
            if (copySubDirs)
            {
                foreach (DirectoryInfo subdir in dirs)
                {
                    string temppath = Path.Combine(destDirName, subdir.Name);
                    DirectoryCopy(subdir.FullName,temppath,copySubDirs);
                }
            }
        }
    }
}

  soure.txt

\\192.168.1.*\dev.static.com\HTML\da-dk
\\192.168.1.*\dev.static.com\HTML\de-de
\\192.168.1.*\dev.static.com\HTML\en-gb
\\192.168.1.*\dev.static.com\HTML\en-row
\\192.168.1.*\dev.static.com\HTML\es-es
\\192.168.1.*\dev.static.com\HTML\fr-fr
\\192.168.1.*\dev.static.com\HTML\it-it
\\192.168.1.*\dev.static.com\HTML\nl-nl

dest.txt

\\192.168.1.*\lounge\da-dk
\\192.168.1.*\lounge\de-de
\\192.168.1.*\lounge\en-gb
\\192.168.1.*\lounge\en-row
\\192.168.1.*\lounge\es-es
\\192.168.1.*\blounge\fr-fr
\\192.168.1.*\lounge\it-it
\\192.168.1.*\lounge\nl-nl