afan 发表于 2021-12-7 15:51:29

dnvplj 发表于 2021-12-7 15:35
现一共4个文件,但一次只能复制2个文件。不管删除数组那2行,其他的2行都能复制成功。所用的文件:附件上 ...

你所有要复制的文件名都是一样的 新建文本文档.txt
      $a_File = @ScriptDir & '\134\1\2\3\新建文件夹62\新建文本文档.txt'
      $a_File = @ScriptDir & '\134\1\2\新建文本文档.txt'
      $a_File = @ScriptDir & '\134\3\新建文件夹62\新建文件夹963\txt\d\新建文件夹\eee\999\csr\egx\新建文本文档.txt'
      $a_File = @ScriptDir & '\134\3\新建文件夹62\新建文件夹963\新建文本文档.txt'
这又怎么可能在同一个文件夹出现?4个文件都是一个名怎么可能

dnvplj 发表于 2021-12-7 15:57:15

afan 发表于 2021-12-7 15:51
你所有要复制的文件名都是一样的 新建文本文档.txt
      $a_File = @ScriptDir & '\134\1\2\3\新 ...

如文件夹下有相同的文件,那就在创建文件夹可以吗?

afan 发表于 2021-12-7 16:12:50

dnvplj 发表于 2021-12-7 15:57
如文件夹下有相同的文件,那就在创建文件夹可以吗?

可以当然可以,关键是你这样做的目的是什么?新建的文件夹名又是什么?多次复制会不会再次陷入我首先提到的无限循环超出限制的问题?
如果你是做文件备份,那应该连源文件的目录结构一起在备份目录创建,这样就能避免同名的问题。
或者在文件名前插入目录结构(替换掉\)也行。
不知道你的用途,无法建议。

dnvplj 发表于 2021-12-7 16:15:13

本帖最后由 dnvplj 于 2021-12-7 16:20 编辑

afan 发表于 2021-12-7 16:12
可以当然可以,关键是你这样做的目的是什么?新建的文件夹名又是什么?多次复制会不会再次陷入我首先提到 ...
再次感谢A大的回复,是做:文件备份,但只想把文件放到同一文件夹下,如有同名文件就创建新的文件夹,把同名文件分别放到不同的文件夹里。

afan 发表于 2021-12-7 17:19:33

dnvplj 发表于 2021-12-7 16:15
再次感谢A大的回复,是做:文件备份,但只想把文件放到同一文件夹下,如有同名文件就创建新的文件夹,把 ...

你要坚持你的想法我就不多说了~
Func _FileBakCopy($s_Dir, $a_File)
        Local $sFN, $sBkDir = '', $sNLst = '|'
        For $i = 1 To UBound($a_File) - 1
                $sFN = StringRegExpReplace($a_File[$i], '^.+\\', '')
                If FileExists($s_Dir & '\' & $sFN) Then
                        If $sBkDir = '' Or StringInStr($sNLst, '|' & $sFN & '|') Then $sBkDir = _CKCreateDir($s_Dir)
                        FileMove($s_Dir & '\' & $sFN, $sBkDir)
                EndIf
                $sNLst &= $sFN & '|'
                FileCopy($a_File[$i], $s_Dir)
        Next
EndFunc   ;==>_FileBakCopy

dnvplj 发表于 2021-12-8 09:28:00

afan 发表于 2021-12-7 17:19
你要坚持你的想法我就不多说了~

非常感谢A大的再次回复,每次我发帖求助都是你不厌其烦的解答和解决我的问题。开始我把问题想的简单了,再次拜读了您2楼和18楼所述,确实是解决问题的最好的办法。
页: 1 [2]
查看完整版本: 复制文件时如有相同名称的如何复制到其他文件夹里