我是靠谱客的博主 碧蓝飞机,这篇文章主要介绍文件迁移-复制粘贴文件到指定路径,现在分享给大家,希望可以做个参考。

文件迁移

从A路径迁移到B路径,迁移所有文件夹 所有类型文件,每日执行定时任务,将每次新变化的文件迁移到文件夹且重命名

复制代码
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
string hostname = Dns.GetHostName();//计算机名称 //Environment.UserName;//获取当前用户 try { using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Digtial_SCM"].ConnectionString)) { string sql = @"SELECT [CopyPath] ,[PastePath],isnull([Last_Run_Time],'19990909') [Last_Run_Time] FROM [Digtial_SCM].[dbo].[SYS_File_Migration_Setting] where [Host_Name]='" + hostname + @"'"; DataTable dt = new DataTable(); var q1 = sqlConnection.ExecuteReader(sql); dt.Load(q1); for (var i = 0; i < dt.Rows.Count; i++) { var copyPath = dt.Rows[i]["CopyPath"].ToString(); var pastePath = dt.Rows[i]["PastePath"].ToString(); DateTime lastRunTime = DateTime.Parse(dt.Rows[0]["Last_Run_Time"].ToString()); List<FileInfo> lst = new List<FileInfo>();//所有的文件 List< FileInfo > files= GetFile(lst,copyPath, "", lastRunTime); for (var x = 0; x < files.Count; x++) { // CopyToFile(copyPath, pastePath, lastRunTime); //目标整体路径 var targetField = pastePath + files[x].FullName.Substring(copyPath.Length, files[x].FullName.Length - copyPath.Length);//目标文件完整url SetFile(files[x], targetField); } } //if (File.Exists(copyPath))//必须判断要复制的文件是否存在 // { // File.Copy(copyPath, pastePath, true);//三个参数分别是源文件路径,存储路径,若存储路径有相同文件是否替换 // } } } catch (Exception ex) { } } public static void SetFile(FileInfo files,string targetField) { var sourceName = files.FullName; //文件不用新的文件名,就用原文件文件名 string fileName = Path.GetFileName(sourceName); 可以选择给文件换个新名字 //string fileName = string.Format("{0}.{1}", "newFileText", "txt"); var targetPath = targetField.Replace(files.Name, "").TrimEnd('\');//目标文件路径 if (!Directory.Exists(targetPath)) { Directory.CreateDirectory(targetPath); } // string targetPath = Path.Combine(pastePath, fileName); FileInfo existedFile = new FileInfo(targetField);//要copy的文件 if (existedFile.Exists)//如果存在该文件 修改文件名称===Directory.Exists(targetPath) { targetField = Path.Combine(targetPath, fileName.Split('.')[0] + "_" + files.LastWriteTime.ToLongDateString().Replace("/", "") + "_" + files.LastWriteTime.ToLongTimeString().Replace(":", "") + "." + fileName.Split('.')[1]); } //Copy到新文件下 FileInfo file = new FileInfo(sourceName);//要copy的文件 if (file.Exists) { try { file.CopyTo(targetField, false);//复制粘贴 //true 覆盖已存在的同名文件,false不覆盖 using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Digtial_SCM"].ConnectionString)) { string sql = @" update [Digtial_SCM].[dbo].[SYS_File_Migration_Setting] set [Last_Run_Time]=GETDATE() where [Host_Name]='" + Dns.GetHostName() + @"'"; sqlConnection.ExecuteReader(sql); } } catch (Exception ex) { } } } /// <summary> /// 获得目录下所有文件或指定文件类型文件(包含所有子文件夹) /// </summary> /// <param name="path">文件夹路径</param> /// <param name="extName">扩展名可以多个 例如 .mp3.wma.rm</param> /// <returns>List<FileInfo></returns> public static List<FileInfo> GetFile(List<FileInfo> lst, string path, string extName, DateTime lastRunTime) { try { string[] dir = Directory.GetDirectories(path); //文件夹列表 DirectoryInfo fdir = new DirectoryInfo(path); FileInfo[] file = fdir.GetFiles(); //FileInfo[] file = Directory.GetFiles(path); //文件列表 if (file.Length != 0 || dir.Length != 0) //当前目录文件或文件夹不为空 { foreach (FileInfo f in file.Reverse()) //FileInfo f in file 显示当前目录所有文件 Reverse反转过来查找 { //if (extName.ToLower().IndexOf(f.Extension.ToLower()) >= 0) //{ if (DateTime.Parse(f.LastWriteTime.ToString()) > lastRunTime)// 文件夹内时间大于最后一次run程序时间的文件 { lst.Add(f); } //} } foreach (string d in dir) { GetFile(lst, d, extName, lastRunTime);//递归 } } return lst; } catch (Exception ex) { throw ex; } }](这里写自定义目录标题)

最后

以上就是碧蓝飞机最近收集整理的关于文件迁移-复制粘贴文件到指定路径的全部内容,更多相关文件迁移-复制粘贴文件到指定路径内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部