2011-04-29 4 views
0

폴더로가는 방법을 알고 있지만 그 이름을 얻고 싶습니다.폴더의 디렉터리가 아닌 현재 폴더의 이름을 얻는 방법

도움 주셔서 감사합니다. 문제는 디렉토리 내의 파일이나 폴더의 이름을 찾는 경우

+1

하지만'dir' =='folder' 아닌가요? – pavium

+1

여기에 더 많은 정보를 제공해야합니다. 당신은 무엇을하려하고 있으며, 지금까지 무엇을 시도 했습니까? 몇 가지 코드를 게시하고 원하는 것을 설명하고 어디서 붙어 있는지 설명하십시오. – Kendrick

답변

9

약간 더 효율적인 방법을보다는 (당신은 한 번만 참조 할 필요가 있기 때문에) 배열로 변환 : 이런 식으로 뭔가 작업을해야합니다 .

fullpath = getDirectoryFromPath(getCurrentTemplatePath()) 

Windows에서 것을 가정하고 fullpath에이 같이 보입니다 C : \을 Inetpub \ 사이트 \ dir을, 당신은이를 사용할 수 있습니다

thisFolder = listlast(fullpath, "\/") 

모든 목록 기능은 구분 기호를 취할 수 있음을 기억하라 (선택적으로) 기본 쉼표로 구분 된 목록뿐만 아니라 이와 같이 구분 된 문자열을 목록으로 처리 할 수 ​​있습니다.

+0

템플릿 경로는 템플릿 자체를 포함하므로 현재 파일 이름 만 가져옵니다. 배열을 조금 더 깨끗하게 보인 다음 ListGetAt를 사용하여 두 번째 요소를 목록에서 마지막 요소로 가져 왔습니다. –

+1

Ben의 대답을 편집하여 getDirectoryFromPath()를 사용하여 파일 이름을 문자열 끝에서 제거합니다. 또한 유닉스 스타일의 디렉토리 문자열을 버리지 않도록 매개 변수로 슬래시를 추가했습니다. – ale

+0

감사합니다. @Al. 나는 expandP {ath()를 사용하고, getCurrentTemplatePath()가 파일 이름을 포함한다는 사실을 잊어 버렸다. –

0

, 당신은 사용할 수 있습니다

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

이 코드는 지정된 디렉토리 내의 모든 디렉토리를 나열해야합니다. 나는 그것을 테스트하지 않았으므로 오타/오류가있을 수 있지만 일반적인 생각을 제공합니다.

3

질문을 올바르게 읽은 경우 템플릿의 전체 경로에서 현재 템플릿 폴더 이름 만 찾고 있습니다. @ 매트 Shooks 직접 목록 기능을 사용하는 것입니다 제안 일을 위해

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

+1 감사합니다. Matt, 이것을 올바른 방향으로 돌렸습니까? –

관련 문제