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

问题描述:

我知道如何获取目录到文件夹,但我想获取名称。如何获取当前文件夹的名称,而不是目录到文件夹

谢谢你的帮助。

+1

但'dir' =='文件夹'不是吗? – pavium 2011-04-29 14:22:36

+1

您需要在这里提供更多信息。你想做什么,到目前为止你尝试过什么。发布一些代码并解释你想要它做什么以及你被困在哪里。 – Kendrick 2011-04-29 14:23:05

稍微更有效的方法做什么@马特Shooks建议将直接使用列表功能,而不是转换为数组(因为你只需要一次引用它) 。

fullpath = getDirectoryFromPath(getCurrentTemplatePath()) 

假设你是在Windows上,你的FULLPATH看起来像C:\的Inetpub \网站\目录,你可以使用这个:

thisFolder = listlast(fullpath, "\/") 

请记住,所有列表功能,可以采取一个分隔符(可选),因此您可以将任何以此形式分隔的字符串视为列表,而不仅仅是默认的逗号分隔列表。

+0

只有当前文件名才能获得您的模板路径包含模板本身。我认为数组看起来有点干净,然后使用ListGetAt获取列表中倒数第二个元素。 – 2011-04-29 16:05:33

+1

我编辑了Ben的答案,也使用getDirectoryFromPath()将文件名从字符串末尾剥离。我还将斜线添加为一个参数,以便Unix样式的目录字符串不会抛出它。 – ale 2011-04-29 16:19:17

+0

谢谢,@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> 
+0

+1谢谢你,马特,你朝着正确的方向前进。 – 2011-05-01 16:43:31