Действительно ли возможно так или иначе исключить файлы с cfdirectory?

Я использовал бы dayofyear функцию datepart:


Select *
from mytable
where datepart(dy,date1) = datepart(dy,date2)
and
year(date1) = year(date2) --assuming you want the same year too

Посмотрите datepart ссылку здесь .

5
задан Jayson 6 July 2009 в 20:42
поделиться

5 ответов

Атрибут фильтра бесполезен, если вы пытаетесь сделать исключение. Показательный пример: буквально вчера я хотел использовать cfdirectory для захвата всех подкаталогов, но EXLCUDE любой каталог, который начинается с точки "." так что я мог исключить такие вещи, как ".svn" и ".git". Излишне говорить, что я поискал повсюду и не смог найти ответа.

В конце концов, я просто использовал некоторую условную логику в своем цикле:

<cfloop query="mydir">
  <cfif left(name, 1) neq ".">
    <!--- do some code --->
  </cfif>
</cfloop>

Что выполнило свою работу. Конечно, я мог бы использовать QoQ, но для меня добавление всех этих накладных расходов для фильтрации каталогов, начинающихся с точки, казалось глупым.

Суть в том, что да, мы облажались, когда дело доходит до фильтрации исключения с помощью cfdirectory , но нет причин, по которым вы не можете использовать свое воображение и немного кода для получения желаемых результатов.

6
ответ дан 18 December 2019 в 12:00
поделиться

Вы можете создать собственный тег, который запускал каталог CF, а затем перебирал результаты (как у вас), создавая новый запрос или структуру с вашими результатами. Это сделало бы его немного более пригодным для повторного использования в других ситуаций.

2
ответ дан 18 December 2019 в 12:00
поделиться

Это может быть возможно сделать в java-объекте с ..

CreateObject("java", "java.io.File");  

.. и фильтром имени файла

Лично я думаю, вам будет лучше просто использовать запрос запросов.

1
ответ дан 18 December 2019 в 12:00
поделиться

Нет, невозможно исключить файлы только с помощью cfdirectory . Атрибут filter только указывает, какие файлы включать, с помощью подстановочных знаков в стиле DOS ( * и ? ).

Самым простым решением, вероятно, является фильтрация постфактум с помощью cfquery.

<cfquery name="qryFiles" dbtype="query">
    SELECT * FROM qryFiles
    WHERE name not like '%.cfm'
</cfquery>
6
ответ дан 18 December 2019 в 12:00
поделиться

I am pretty sure the ! operator will not work in the filter parameter.

I don't see a way of getting around doing query of query or looping through the query with a cfoutput/cfloop and then checking the value of each file name with a cfif/cfcase statement to see if you want it to show up.

0
ответ дан 18 December 2019 в 12:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: