在coldFusion CFFTP中,如果dir不存在,则existsDir会生成错误

hel*_*lp 5 ftp coldfusion coldfusion-10

existsDir用来检查文件夹是否存在.

<cfftp action="existsDir" 
       connection="FTP" 
       directory="/Download/Test">
#cfftp.returnvalue#
Run Code Online (Sandbox Code Playgroud)

如果该文件夹存在,那么一切正常.该returnvalue是"是".如果该文件夹不存在,则existsDir操作将失败,并显示以下错误:

An error occurred during the sFTP existsDir operation. The system cannot find the path /Download/Test 
Run Code Online (Sandbox Code Playgroud)

此操作的重点是确定文件夹是否存在.然而,如果它不存在则会导致错误.我错过了什么吗?

我可以添加尝试并捕捉整个声明(我还是要添加它只是为了安全),但这会使这个存在无意义.

Ian*_*van 2

我也经历过这个。即使在 CF 2016(我们刚刚迁移到)中,这似乎也是一个错误。我通过在 cfftp action="existsDir" 用法期间设置 stoponerror="No" 来解决这个问题;

<cfftp action="existsDir"
       connection="ftp_connection"
       directory="#remote_path#"
       stoponerror="No">
Run Code Online (Sandbox Code Playgroud)

然后您可以检查它是否“成功”并在必要时创建目录;

<cfif cfftp.succeeded NEQ "YES">

    <!--- Create directory --->
    <cfftp action="createDir"
         connection="ftp_connection"
         directory="#remote_path#"
         stoponerror="No">
</cfif>
Run Code Online (Sandbox Code Playgroud)