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

时间:2019-07-17 16:44:11

标签: coldfusion cffile

在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支持复制多个文件,但是我找不到任何可以复制的文件。谁能建议一种更简化的方法来设置带有四个文件的目录?

1 个答案:

答案 0 :(得分:6)

不。顾名思义,cffile仅对单个文件起作用。

但是,您可以对文件filter使用DirectoryCopy()<cfdirectory action="copy">。下面的示例将文件“ 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">