.... so... in theory, as long as you're connected to an ftp server, an
existsDir call should never return cfftp.succeeded=false correct? ...
I'm consistently getting these results from existsDir on CF 6.1

arguments.item = /ontap/_components/_cfc/test

<cfftp directory="#arguments.item#"
action="#arguments.type#"
connection="#connection()#"
stoponerror="#stopOnError()#">

cfftp.errorcode = 250
cfftp.errortext = 250 CWD command successful.
"/ontap/_components/_cfc" is current directory.
cfftp.returnvalue = NO
cfftp.succeeded = NO

So it looks like cfftp is telling me:

a) the directory doesn't exist
b) I can't tell you if the directory exists, because an error occurred
before I could figure that out

.... so obviously one of these is innaccurate...

It's strange tho, it seemed to be working and then just suddenly
stopped working and I can't figure out why. using stopOnError="true"
doesn't raise a ColdFusion exception, which seems to indicate that
cfftp.succeeded=NO is incorrect. I'm trying to use cfftp.succeeded to
return ftp errors to a listener object, but that won't work if it
returns an error when no error has occurred. :-/

Here is the complete method (sorry for the line-wrap):

        <cffunction name="exists" returntype="boolean" access="public"
output="false" hint="indicates if a specified file or directory exists
on the ftp server">
                <cfargument name="item" type="string" required="true"
hint="indicates the file or direcotry to find">
                <cfargument name="type" type="string" required="false" 
default=""
hint="file or dir - indicates the type of object to detect">
                <cfset var cfftp = 0><cfset arguments.type = "exists" &
rereplacenocase(arguments.type,"^(file|dir).*$","\1")>
                <cfset arguments.item = getRemotePath(arguments.item)>
                <cfif not variables.isOpen><cfset open()></cfif>
                <cfswitch expression="#arguments.type#">
                        <cfcase value="exists"><cfftp item="#arguments.item#"
action="#arguments.type#" connection="#connection()#"
stoponerror="#stopOnError()#"></cfcase>
                        <cfcase value="existsFile"><cfftp 
remoteFile="#arguments.item#"
action="#arguments.type#" connection="#connection()#"
stoponerror="#stopOnError()#"></cfcase>
                        <cfcase value="existsDir"><cfftp 
directory="#arguments.item#"
action="#arguments.type#" connection="#connection()#"
stoponerror="#stopOnError()#"></cfcase>
                </cfswitch>
                <cfif not cfftp.Succeeded>
                        <cfset cfftp.item = arguments.item>
                        <cfset broadcast("error",cfftp,arguments.type)>
                </cfif>
                <cfreturn cfftp.returnvalue>
        </cffunction>

Any help greatly appreciated.

s. isaac dealey     954.522.6080
new epoch : isn't it time for a change?

add features without fixtures with
the onTap open source framework

http://www.fusiontap.com
http://coldfusion.sys-con.com/author/4806Dealey.htm


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Discover CFTicket - The leading ColdFusion Help Desk and Trouble 
Ticket application

http://www.houseoffusion.com/banners/view.cfm?bannerid=48

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:207352
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to