Каталог моего теста был настроен с помощью reader.cfm и list.cfm.Ему удалось найти файл list.cfm в файле списка примеров и зарегистрировать файл reader.cfm как отсутствующий.
Вероятно, есть лучший способ получить список имен файлов cfm из файла.Я не гуру в регулярных выражениях, но я проверил, что это работает как хотелось.Это, вероятно, не будет работать, если ваши ссылки имеют специальные символы, такие как _ или -.Это должно дать вам кое-что для начала.
</p>
<pre><code><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#">
Содержимое файла list.cfm, который я использовал.
</p>
<pre><code><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 просматривает текущее содержимое массива и сравнивает его со значением имени внешнего цикла.2-й if смотрит на текущее значение местоположения массива и максимально возможное значение местоположения массива.Мы знаем, достигли ли мы текущего местоположения == максимально возможного местоположения - элемент внешнего цикла (список каталогов) не был найден во внутреннем цикле (массив файлов).Это делается для <cfbreak>
в первом блоке if.Это <cfbreak>
выйдет из 2-го внутреннего цикла, когда мы найдем правильное совпадение.Это предотвращает выполнение 2-го блока if для vaild find.
Надеюсь, это поможет.Не забудьте принять ответ, если вы чувствуете, что он получил ответ XD