1 /// <summary>
2 /// 录音录像图片文件过多只复制目录的前几个文件,用于测试程序
3 /// d:\file/images/2019-10/01/01/xxxxx.jpg(前几个文件)
4 /// 复制到
5 /// E:\file/images/2019-10/01/01/xxxxx.jpg
6 ///
7 /// copyfiles("d:\file","e:\file");
8 /// </summary>
9 /// <param name="path">源目录</param>
10 /// <param name="toPath">目的目录</param>
11 /// <param name="Num">文件个数</param>
12 public static void CopyFiles(string path,string toPath,int Num)
13 {
14 var logger = NLog.LogManager.GetCurrentClassLogger();
15 DirectoryInfo dir = new DirectoryInfo(path);
16 DirectoryInfo[] childs = dir.GetDirectories();
17 string newdirStr;
18 if (dir.Name.IndexOf(':') == -1)
19 {
20 DirectoryInfo newdir = Directory.CreateDirectory(toPath + "\\" + dir.Name);
21 newdirStr = newdir.FullName;
22 }
23 else
24 {
25 newdirStr = toPath;
26 }
27 if (childs.Length>0)
28 {
29 foreach (var child in childs)
30 {
31 if ((child.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
32 {
33 continue;
34 }
35 CopyFiles(child.FullName, newdirStr, Num);
36 }
37 }
38 else
39 {
40 dir.GetFiles().Take(Num).ToList().ForEach(f => {
41 string newfilename = newdirStr + "\\" + f.Name;
42 File.Copy(f.FullName, newfilename, true);
43 logger.Info($"复制文件:{f.FullName}");
44 logger.Info($"复制文件:{newfilename}");
45 });
46 }
47 }