如何获取当前文件夹的名称,而不是目录到文件夹
稍微更有效的方法做什么@马特Shooks建议将直接使用列表功能,而不是转换为数组(因为你只需要一次引用它) 。
fullpath = getDirectoryFromPath(getCurrentTemplatePath())
假设你是在Windows上,你的FULLPATH看起来像C:\的Inetpub \网站\目录,你可以使用这个:
thisFolder = listlast(fullpath, "\/")
请记住,所有列表功能,可以采取一个分隔符(可选),因此您可以将任何以此形式分隔的字符串视为列表,而不仅仅是默认的逗号分隔列表。
只有当前文件名才能获得您的模板路径包含模板本身。我认为数组看起来有点干净,然后使用ListGetAt获取列表中倒数第二个元素。 – 2011-04-29 16:05:33
我编辑了Ben的答案,也使用getDirectoryFromPath()将文件名从字符串末尾剥离。我还将斜线添加为一个参数,以便Unix样式的目录字符串不会抛出它。 – ale 2011-04-29 16:19:17
谢谢,@Al。我平时使用expandP {ath(),忘记getCurrentTemplatePath()包含文件名。 – 2011-04-29 17:56:26
如果你的问题是要找到一个目录内文件或文件夹的名称,你可以使用:
<cfdirectory action="LIST" directory="C:\KnownDirectory" name="DirectoryContentsList" />
<ul>
<cfoutput query="DirectoryContentsList">
<cfif DirectoryContentsList.TYPE eq "D">
<li>#DirectoryContentsList.Name#</li>
</cfif>
</cfoutput>
</ul>
此代码应列出指定目录内的所有目录。我没有对它进行测试,所以可能会出现拼写错误或错误,但它会给出您的总体想法。
如果我正确地阅读了您的问题,您正在从模板的完整路径中查找当前模板文件夹的名称。像这样的东西应该工作:
<cfset path = ListToArray(GetCurrentTemplatePath(), "\") />
<cfset folderName = path[DecrementValue(ArrayLen(path))] />
<cfoutput>#folderName#</cfoutput>
+1谢谢你,马特,你朝着正确的方向前进。 – 2011-05-01 16:43:31
但'dir' =='文件夹'不是吗? – pavium 2011-04-29 14:22:36
您需要在这里提供更多信息。你想做什么,到目前为止你尝试过什么。发布一些代码并解释你想要它做什么以及你被困在哪里。 – Kendrick 2011-04-29 14:23:05