Томалак ответит хорошо, но это может быть сложно. Имеется файл с именем «mydoc.ver1.doc» (действительное имя файла Windows), который является именем файла и каково расширение? Что если есть путь к файлу?
Тем не менее, вы можете использовать функции списка в своих интересах, даже в этих сценариях.
Вы можете легко разобрать файл по пути с помощью
fullFileName=listLast(fieldname,"\/")
Если вы предполагаете, что имя файла - это все до точки, то
theFileName=listFirst(fullFileName,".")
будет работать.
Если вы хотите убедиться, что вы получаете все, кроме того, что произошло после последнего периода, тогда вам нужно немного обмануть, но не сильно. Не существует функции listAllButLast()
(хотя такая вещь может существовать на CFLIB.org), но есть два способа найти то, что вам нужно.
fileName=reverse(listRest(reverse(fullFileName),"."))
или
fileName=listDeleteAt(fullFileName,listLen(fullFileName,"."),".")
Однако, как и в случае с предложением Томалака, это приведет к нарушению имени файла, в котором отсутствует расширение. Обернув это в <cfif listLen(fullFileName,".") GT 1>
, мы это учтем.