我可以使用 cffile 复制多个文件吗?

Can I use cffile to copy multiple files?

在 ColdFusion 中,我正在使用 <cfdirectory 设置一个新目录。然后我需要将几个文件从一个目录复制到新目录,并保持相同的文件名。我可以使用循环来执行此操作,但我想知道 cffile 中是否有任何函数可以让我一次复制多个文件。

麻烦 -- reploc 和 newloc 是源目录和目标目录:

<cfdirectory
      directory  = 'newloc'
      action     = 'create'   
      mode       = 777>

<cfoutput>
<cfset extrep = ExpandPath('reploc')>
<cfset extnew = ExpandPath('newloc')>

 <cfset flist = 'a.cfm', 'b.cfm'>
 <cfloop list = '#flist#' index = 'item'>
   <cffile 
       action = "copy" 
       source = "#extrep#/#item#"
       destination = "#extnew#/#item#"
       mode = "766" >
 </cfloop>
 </cfoutput>

我正好有四个文件要复制。它们是固定的,不依赖于任何用户输入。

我希望 <cffile 支持复制多个文件,但我找不到任何支持的内容。谁能建议一种更简化的方法来设置包含四个文件的目录?

没有。顾名思义,cffile 仅对单个文件进行操作。

但是,您可以将 DirectoryCopy() or <cfdirectory action="copy"> 与文件 filter 一起使用。下面的示例将文件 "a.cfm" 和 "b.cfm" 复制到目标文件夹。

CFScript/CFML:

 DirectoryCopy("c:\path\source", "c:\path\target", false, "a.cfm|b.cfm")

CFML:

<cfdirectory action="copy"
    directory="c:\path\source"
    destination="c:\path\target"
    filter="a.cfm|b.cfm">