我用过 <cfdirectory>
仅获取目录,但我需要在用 cfscript 编写的 UDF 中执行此操作,因此我需要使用 DirectoryList()。看来我需要获取所有内容,然后手动访问结果过滤目录。但是,有一个过滤器参数......它可以用于仅过滤目录吗?如果是这样,过滤器是什么?
我还没有找到一个只返回目录的例子,文档也不清楚可以过滤什么(*.txt 除外)。
最佳答案
<cfdirectory action="list"...>
(和 DirectoryList(path [,recurse] [,listInfo="query"]...)
)返回一个查询对象。没有理由您不能这样做,然后立即对 TYPE 列进行查询过滤。
Mark Kruger 提醒我,我可能应该包含代码:
<cffunction name="DirectoryList2" returntype="query">
<cfargument name="dirPath" type="string" required="true">
<cfif directoryExists(arguments.dirPath)>
<cfdirectory directory="#arguments.dirPath" name="local.DirQuery" action="LIST">
<cfquery name="local.DirQuery" dbtype="query">
SELECT * FROM local.DirQuery WHERE TYPE = 'dir'
</cfquery>
<cfreturn local.DirQuery>
<cfelse>
<cfthrow message="No such directory">
</cfif>
</cffunction>
关于ColdFusion DirectoryList () - 是否可以只获取目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10264579/