Coldfusion cfquery.recordcount在cfdirectory上返回0,但仅在windows上返回

Coldfusion cfquery.recordcount在cfdirectory上返回0,但仅在windows上返回,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我在Coldfusion 9中查询了一个目录。为什么这段代码在mac上运行并给出了预期的结果,而在windows上却没有 <cfoutput> <cfset fileLocation = "d:/tmp"> <!--- On mac set to /tmp ---> <cfdirectory action = "list" directory = "#fileLocation#" name = "files

我在Coldfusion 9中查询了一个目录。为什么这段代码在mac上运行并给出了预期的结果,而在windows上却没有

<cfoutput>
<cfset fileLocation = "d:/tmp"> <!--- On mac set to /tmp --->
<cfdirectory
        action = "list"
        directory = "#fileLocation#"
        name = "files"
        >
Files found #files.recordcount# <br/>
<cfquery name="dir" dbtype="query">
        select  *
        from    files
        where   directory = <cfqueryparam value = "#fileLocation#">
</cfquery>
Query gives #dir.recordcount#
</cfoutput>
在窗户上

Files found 5
Query gives 0 

我是否遗漏了明显的内容?

啊,我猜windows将目录名报告为
D:\tmp
,而不是另一个斜杠:
D:/tmp
。这就是为什么您的
目录=#filelocation#
没有返回任何匹配项的原因。您可能可以使这个平台更加独立


我可以发誓现在CF中有一个内置函数,但我似乎找不到它。

啊,我猜windows将目录名报告为
D:\tmp
,而不是另一个斜杠:
D:/tmp
。这就是为什么您的
目录=#filelocation#
没有返回任何匹配项的原因。您可能可以使这个平台更加独立


我可以发誓现在CF中有一个内置函数,但我似乎找不到它。

您是否尝试在您的cfdirectory之后查看返回结果,然后进行比较?您可以CFDUMP Windows版本吗?您的CF服务是否具有从d:\tmp读取的权限?请尝试在您的查询中匹配windows上的“d:\temp”。由于cfdirectory以windows表示法返回目录,因此在您的查询中找不到d:/temp。您是否尝试在cfdirectory之后查看返回的内容,然后进行比较?是否可以CFDUMP windows版本?您的CF服务是否具有从d:\tmp读取的权限?请尝试在您的查询中匹配windows上的“d:\temp”。由于cfdirectory以windows表示法返回目录,因此在查询中找不到d:/temp。就是这样。没想到会是这样,但有道理。谢谢然而,由于底层实现是Java,这应该无关紧要。如您所见,它适用于CFD目录。CF中发生了一些不可靠的事情……因为底层实现是Java,这不重要,问题不在哪里。Java对斜杠没有问题,它被查询过滤器删除。由于您使用的是相等比较,因此绝对应该尊重值的差异。毕竟这些值并不相等。因此,零(0)条记录是正确的结果。在基于Windows的系统上,斜杠的“方向”对于查找资源来说并不重要。Windows将“/”和“\”识别为路径分隔符。正如Leigh指出的,问题更可能是将“D:/temp”与“D:\temp”进行比较。就是这样。没想到会是这样,但有道理。谢谢然而,由于底层实现是Java,这应该无关紧要。如您所见,它适用于CFD目录。CF中发生了一些不可靠的事情……因为底层实现是Java,这不重要,问题不在哪里。Java对斜杠没有问题,它被查询过滤器删除。由于您使用的是相等比较,因此绝对应该尊重值的差异。毕竟这些值并不相等。因此,零(0)条记录是正确的结果。在基于Windows的系统上,斜杠的“方向”对于查找资源来说并不重要。Windows将“/”和“\”识别为路径分隔符。正如Leigh指出的,问题更可能是将“D:/temp”与“D:\temp”进行比较。
Files found 5
Query gives 0