有可能以某种方式用cfdirectory排除文件?

Jay*_*son 5 coldfusion cfdirectory

使用cfdirectory时,如何在不指定我想要查看的所有文件的文件扩展名的情况下排除所有cfm文件并列出所有其他文件,或者在不查询查询的情况下排除特定文件(如index.html)?

我正在寻找类似下面的内容,请注意filter属性.

<cfdirectory directory="#ExpandPath('./')#" action="list" name="qryFiles" filter="!index.html" sort="name ASC" listinfo="name">
Run Code Online (Sandbox Code Playgroud)

要么:

<cfdirectory directory="#ExpandPath('./')#" action="list" name="qryFiles" filter="!*.cfm" sort="name ASC" listinfo="name">
Run Code Online (Sandbox Code Playgroud)

Pat*_*ney 6

不,仅使用cfdirectory排除文件是不可能的.filter属性仅指定要包含的文件,具有DOS样式的通配符(*?).

最简单的解决方案可能是在事后用cfquery过滤.

<cfquery name="qryFiles" dbtype="query">
    SELECT * FROM qryFiles
    WHERE name not like '%.cfm'
</cfquery>
Run Code Online (Sandbox Code Playgroud)


rip*_*747 6

如果您尝试排除,过滤器属性将无用.例证:就在昨天,我想使用cfdirectory来获取所有子目录,但是EXLCUDE以句点"." 开头的任何目录.这样我就可以排除".svn"和".git"之类的内容.不用说,我搜遍了整个地方,找不到答案.

最后我最后在循环中使用了一些条件逻辑:

<cfloop query="mydir">
  <cfif left(name, 1) neq ".">
    <!--- do some code --->
  </cfif>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

完成了这项工作.当然我可以使用QoQ,但对我来说,添加所有开销以过滤掉以句号开头的目录似乎很傻.

最重要的是,是的,我们在使用cfdirectory进行排除过滤时遇到了麻烦,但没有理由不能用你的想象力和一些代码来获得你想要的结果.