首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能用cfdirectory来排除文件?

有没有可能用cfdirectory来排除文件?
EN

Stack Overflow用户
提问于 2009-07-06 20:42:35
回答 5查看 4.2K关注 0票数 5

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

我正在寻找类似下面这样的东西,注意filter属性。

代码语言:javascript
复制
<cfdirectory directory="#ExpandPath('./')#" action="list" name="qryFiles" filter="!index.html" sort="name ASC" listinfo="name">

或者:

代码语言:javascript
复制
<cfdirectory directory="#ExpandPath('./')#" action="list" name="qryFiles" filter="!*.cfm" sort="name ASC" listinfo="name">
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-07 11:45:20

如果您正在尝试执行排除,则filter属性是无用的。一个恰当的例子:就在昨天,我想使用cfdirectory来抓取所有的子目录,但是EXLCUDE任何以句点开头的目录“。这样我就可以排除像".svn“和".git”这样的东西。不用说,我到处找也找不到答案。

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

代码语言:javascript
复制
<cfloop query="mydir">
  <cfif left(name, 1) neq ".">
    <!--- do some code --->
  </cfif>
</cfloop>

这就完成了任务。当然,我也可以使用QoQ,但对我来说,添加所有开销来过滤掉以句点开头的目录似乎很愚蠢。

底线是,是的,当涉及到cfdirectory的排除过滤时,我们搞砸了,但没有理由你不能使用你的想象力和一点代码来获得你想要的结果。

票数 6
EN

Stack Overflow用户

发布于 2009-07-06 21:06:13

不,不能单独使用cfdirectory来排除文件。筛选器属性仅指定要包含的文件,并使用DOS样式的通配符(*?)。

最简单的解决方案可能是使用cfquery进行过滤。

代码语言:javascript
复制
<cfquery name="qryFiles" dbtype="query">
    SELECT * FROM qryFiles
    WHERE name not like '%.cfm'
</cfquery>
票数 6
EN

Stack Overflow用户

发布于 2009-07-07 11:59:12

您可以创建一个运行CF目录的自定义标记,然后循环遍历结果(就像您所做的那样),使用您的结果构建一个新的查询或结构。这将使它在其他情况下的可重用性稍高一些。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1089121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档