Coldfusion 如何获取当前文件夹的名称,而不是文件夹的目录

Coldfusion 如何获取当前文件夹的名称,而不是文件夹的目录,coldfusion,Coldfusion,我知道如何将目录转到文件夹,但我想知道名称 感谢您的帮助。如果您的问题是在目录中查找文件或文件夹的名称,您可以使用: <cfdirectory action="LIST" directory="C:\KnownDirectory" name="DirectoryContentsList" /> <ul> <cfoutput query="DirectoryContentsList"> <cfif DirectoryContentsList.TYP

我知道如何将目录转到文件夹,但我想知道名称


感谢您的帮助。

如果您的问题是在目录中查找文件或文件夹的名称,您可以使用:

<cfdirectory action="LIST" directory="C:\KnownDirectory" name="DirectoryContentsList" />
<ul>
<cfoutput query="DirectoryContentsList">
    <cfif DirectoryContentsList.TYPE eq "D">
        <li>#DirectoryContentsList.Name#</li>
    </cfif>
</cfoutput>
</ul>

  • #目录ContentsList.Name#

此代码应列出指定目录中的所有目录。我没有测试它,因此可能会有输入错误/错误,但它提供了大致思路。

如果我没有看错您的问题,您只需要从模板的完整路径中查找当前模板文件夹名称。像这样的方法应该会奏效:

<cfset path = ListToArray(GetCurrentTemplatePath(), "\") />
<cfset folderName = path[DecrementValue(ArrayLen(path))] />
<cfoutput>#folderName#</cfoutput>

#文件夹名#

按照@Matt Shooks的建议,一种更有效的方法是直接使用列表函数,而不是转换为数组(因为只需引用一次)

假设您在Windows上,并且您的完整路径类似于c:\inetpub\site\dir,您可以使用:

thisFolder = listlast(fullpath, "\/")

请记住,所有列表函数都可以使用分隔符(可选),因此您可以将任何这样分隔的字符串视为列表,而不仅仅是默认的逗号分隔列表。

但是
dir
==
文件夹
不是吗?您需要在此处提供更多信息。你想做什么,到目前为止你做了什么。发布一些代码,并解释您希望它做什么以及卡在哪里。这只会得到当前文件名,因为模板路径包括模板本身。我认为数组看起来比较干净,然后使用ListGetAt获取列表中倒数第二个元素。我编辑了Ben的答案,同时使用getDirectoryFromPath()将文件名从字符串的末尾去掉。我还添加了斜杠作为参数,这样Unix风格的目录字符串就不会丢失它。谢谢,@Al.I通常使用expandP{ath(),忘记了getCurrentTemplatePath()包含fiilename。谢谢你们!将它提升到了一个新的级别。+1谢谢Matt,你们把它引导到了正确的方向。
thisFolder = listlast(fullpath, "\/")