다음을 수행하는 ColdFusion 코드를 작성할 수 있습니까? .cfm 파일을 읽고 필터링하는 ColdFusion 코드
- 가 추가 ".CFM"가 어떤 단어에 대한 .CFM 파일
- 필터에게 .CFM 파일을 읽어보십시오.
- 2 단계에서 찾은 파일 이름 목록을 디렉터리의 파일과 비교하여 디렉터리에 .cfm 파일에없는 파일이 있는지 확인하십시오.
2 단계에서 href에서 .cfm 파일 이름을 찾으려고합니다.
감사
다음을 수행하는 ColdFusion 코드를 작성할 수 있습니까? .cfm 파일을 읽고 필터링하는 ColdFusion 코드
2 단계에서 href에서 .cfm 파일 이름을 찾으려고합니다.
감사
내 테스트의 디렉토리는 reader.cfm과 list.cfm로 설정했다. 예제 목록 파일에서 list.cfm 파일을 찾을 수 있었고 reader.cfm 파일이 존재하지 않는 것으로 기록했습니다.
아마 파일에서 cfm 파일 이름 목록을 얻는 더 좋은 방법입니다. 나는 정규 표현식에 전문가가 아니지만 원하는대로 작동하는지 테스트했다. 귀하의 링크에 _ 또는 -와 같은 특수 문자가있는 경우 아마 작동하지 않을 것입니다. 이것은 당신에게 뭔가를 제공해야합니다. list.cfm 파일의
<cffile action="read"
file="#expandpath('list.cfm')#"
variable="fileList">
<cfset fileResult = rematchNoCase('([a-z]|[A-Z]|[0-9])+\.cfm', fileList)>
<cfdirectory
directory="#expandPath('.')#"
action="list"
filter="*.cfm"
listInfo="name"
recurse = "no"
type="file"
name="dirList">
<cfset notInFile = ArrayNew(1)>
<cfoutput>
<cfloop query="dirList">
<cfloop from="1" to="#arrayLen(fileResult)#" index="i">
<cfif dirList.name eq fileResult[i]>
found one! #dirList.name#<br>
<cfbreak>
</cfif>
<cfif i eq #arrayLen(fileResult)#>
Item not found! #dirList.name#<br>
<cfset _r = ArrayAppend(notInFile, dirList.name)>
</cfif>
</cfloop>
</cfloop>
</cfoutput>
<cfdump var="#notInFile#">
내용은 내가 사용. 우리의 디렉토리 내용을 통해
<a href="someRealLink.cfm">click me to fun</a>
something
other thing
a coldfusion.cfm thing
stuff
things
yar.cfm
blah
Something.cfm
0912.cfm
some123.cfm
cfm
list.cfm
첫 번째 루프 사이클. 두 번째 루프는 우리가보고있는 cfm 파일 내부에있는 숫자 배열 항목을 순환합니다. 첫 번째 if 블록은 현재 배열 위치 내용을보고이를 외부 루프 이름 값과 비교합니다. 2nd if는 현재 배열 위치 값과 가능한 최대 배열 위치 값을 봅니다. 우리는 현재 locaction == 최대 위치에 도달했는지 안다. 외부 루프 요소 (디렉토리 목록)가 내부 루프 (파일 배열)에서 발견되지 않았다. 첫 번째 if 블록의 <cfbreak>
에 대한 작업입니다. 이 <cfbreak>
은 유효한 일치 항목을 찾으면 두 번째 내부 루프에서 벗어납니다. 이렇게하면 두 번째 if 블록이 vaild 찾기에서 실행되지 않습니다.
희망이 도움이됩니다. 답변을 받았다고 생각하면 대답을 수락하는 것을 잊지 마십시오. XD
감사합니다. 이것은 매우 도움이되었습니다. 두 번째은 무엇을 설명 할 수 있습니까? "i"가 fileResult의 요소와 같은지 확인해야하는 이유는 무엇입니까? "i"가 fileResult와 어떻게 같지 않을 수 있습니까? 하지만이 태그가 필요합니다. –
MahlerAdmirer
위의 설명을 추가했습니다. 너무 혼란 스럽기를 바란다. 나는 코드를 설명하는 데 아주 훌륭하다. P – ShortRound1911