晕。我问的不知目前代码执行的是什么结果,问的是最终想要什么结果?不如直接使用文字详细说明这个代码要做什么功能?
[此贴子已经被作者于2024/6/3 17:32:15编辑过]
窗口按钮,这个代码是将F盘里项目F6的文件夹及子文件夹项目F1里的全部文件复制到G盘文件夹项目G7里面。
38楼代码就能实现。点击按钮就复制文件,此时F6文件夹的内容已复制到G7文件夹里,再次点击按钮时就会出错,怎样才不出错
[此贴子已经被作者于2024/6/3 18:13:21编辑过]
根据什么规则复制?如果目的地已经有一个同名的文件是退出全部代码所有文件都不再处理?还是逐个文件判断,比如A文件已经有就不复制,B不存在就继续复制?
首先感谢蓝老师下班后还在回答。我希望目标地已有的就不用复制了,没有的继续复制,要逐个判断
[此贴子已经被作者于2024/6/3 21:10:26编辑过]
If FileSys.DirectoryExists("G:\项目G7") = False Then
FileSys.CopyDirectory ("F:\项目F6", "G:\项目G7")
Else
For Each dir As String In FileSys.GetDirectories ("F:\项目F6\")
Dim dir1 As String = "G:\项目G7\" & dir.replace("F:\项目F6\", "")
If FileSys.DirectoryExists(dir1) = False Then
FileSys.CopyDirectory (dir, dir1)
Else
For Each File As String In FileSys.GetFiles(dir)
If FileSys.FileExists(File) = False Then
FileSys.CopyFile(File, File.Replace("F:\项目F6\", "G:\项目G7\"))
End If
Next
End If
Next
End If
老师,56楼代码运行结果:
1.如果G盘不存在“项目G7”文件夹,点击按钮,则可以将F盘“项目F6及子目录的所有文件”全部复制到G盘中。
2. 如果G盘存在“项目G7”文件夹,点击按钮,代码没有反应,也就是说不能将F盘“项目F6及子目录” 新增的文件复制到G盘“项目G7”文件夹中。
请老师再完善一下代码
学会调试
If FileSys.DirectoryExists("G:\项目G7") = False Then
FileSys.CopyDirectory ("F:\项目F6", "G:\项目G7")
msgbox("G:\项目G7不存在,复制")
Else
For Each dir As String In FileSys.GetDirectories ("F:\项目F6\")
msgbox("dir=" & dir) Dim dir1 As String = "G:\项目G7\" & dir.replace("F:\项目F6\", "")
msgbox("dir1=" & dir1) If FileSys.DirectoryExists(dir1) = False Then
FileSys.CopyDirectory (dir, dir1)
msgbox("dir1不存在,复制") Else
For Each File As String In FileSys.GetFiles(dir)
msgbox("dir.File=" & File) If FileSys.FileExists(File) = False Then
msgbox("文件不存在,复制,源=" & File & ",目的:" & File.Replace("F:\项目F6\", "G:\项目G7\"))
FileSys.CopyFile(File, File.Replace("F:\项目F6\", "G:\项目G7\"))
End If
Next
End If
Next
End If
第1次弹出内容:dir = F: \ 项目F6 \ 项目F1
第2次弹出内容:dir1 = G: \ 项目G7 \ 项目F1
第3次弹出内容:dir.File = F: \ 项目F6 \ 项目F1 \ 55.png
第4次弹出内容:dir.File = F: \ 项目F6 \ 项目F1 \ Word3文档.docx
第5次弹出内容:dir.File = F: \ 项目F6 \ 项目F1 \ Word2文档.docx
老师,这些问题怎么修改,请帮忙解决
[此贴子已经被作者于2024/6/4 11:44:25编辑过]