在ColdFusion 9中搜索文件夹

时间:2012-06-19 21:06:21

标签: coldfusion coldfusion-9

我正在尝试创建一种搜索方法,以便在我的出站电子邮件中附加文件。我需要在文件夹中搜索并找到以某个字符开头的所有文件,然后将它们附加到电子邮件中。我只需要了解如何创建这样的搜索方法,以便了解任何指针或引用链接。

这是我到目前为止所做的事情但是当我使用路径代替GetBaseTemplatePath()

时它似乎无法正常工作
<cfscript>
  attributes.attachments = 2011093475839213;
</cfscript>

<cfset Directory = "E:\sites\Example.com\FileFolder\#attributes.attachments#"> 


<cfset CurrentDirectory=Directory>  
<cfset CurrentDirectory=ListDeleteAt(CurrentDirectory,ListLen(CurrentDirectory,"/\"),"/\")>  

<cfoutput>  
 <b>Current Directory:</b> #CurrentDirectory#  
    <br />  
</cfoutput>  

<cfdirectory action="list" directory="#CurrentDirectory#" name="result">  
<cfdump var="#result#"> 

当我稍微改变代码

<cfset CurrentDirectory=GetBaseTemplatePath()> 

我的代码有效,我得到当前目录中所有文件的列表。我的路上有一个我看不到的错误吗?

这是我的CFMAIL部分,我确实遇到了问题。 当我转储#result#查询时,我得到文件夹中的所有文件。然后我收到了这个错误:

The resource 2011093475839213.pdf was not found.

The root cause was: ''.

尽管有错误,我确实收到了一封电子邮件,而不是附件。

<!--- Email Test --->
<CFMAIL FROM="user1@example.com" TO="user2@example.com"  SUBJECT="Test" type="HTML">
<P> This is the attachment test</P>
<p> For this test to be successful, we need to receive some file attachments with this email</p>

    <cfloop query="result">

        <cfmailparam file="#result.name#" disposition="attachment">

    </cfloop>


</cfmail>
<!--- Email Test Ends --->

2 个答案:

答案 0 :(得分:2)

cfdirectory标签允许您搜索具有特定模式的文件夹。使用它返回的查询,您可以循环它并将所需的所有文件附加到电子邮件中。

http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f99.html

答案 1 :(得分:1)

这样的事情:

<cfdirectory action="list" directory="#myDirectory#" name="myDir">

<cfmail subject="My Subject" to="yourAddress" from="myAddress">
  My Message
  <cfsilent>
    <cfloop query="myDir">
      <cfif Left(myDir.name,1) eq "Z">
        <cfmailparam file="#myDirectory & myDir.name#">
      </cfif>
    </cfloop>
  </cfsilent>
</cfmail>