2

在 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能支持复制多个文件,但我找不到任何可以说的东西。任何人都可以建议一种更简化的方法来设置此目录及其四个文件吗?

4

1 回答 1

8

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

但是,您可以做的是使用DirectoryCopy()<cfdirectory action="copy">使用 file 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">
于 2019-07-17T17:29:16.783 回答