文件是否存在且不可读?

时间:2009-12-11 20:16:16

标签: coldfusion

我有一个要求,即

If file exists and is not readable then Update in DB with 
 file path and some Status.

文件是否存在且无法读取?

是,如何通过coldfusion此类文件识别, 我知道我们可以确定它是否存在,但我想知道,如何识别它是否可读?

我正在使用Windows服务器和Coldfusion 8

谢谢,

3 个答案:

答案 0 :(得分:4)

通过使用GetFileInfo(path),您可以获取文件的大小以及是否启用了读写权限。它也将返回'type',但它只是'file'vs'folder',而不是mime-type。

示例:

<cfset test = GetFileInfo(myFilePath)>
<cfdump var="#test#">

使用示例:

<!--- Check if file exists and is not readable --->
<cfif fileExists(myFilePath) AND NOT GetFileInfo(myFilePath).canRead>
    <!--- then Update in DB with file path and some Status --->
</cfif>

如果您的要求假定您正在验证文件类型而不仅仅是打开文件的能力,那么您需要更新您的问题以列出您必须测试的文件类型,以便我们可以帮助您那部分。 Coldfusion可以验证某些类型,其他类型可能需要一些Java。

答案 1 :(得分:3)

文件可能存在,但您没有正确的权限来阅读它。

我找到this

  

GetFileInfo(filepath) - 到目前为止,直到ColdFusion 7,没有找到关于文件的大小,上次修改日期等信息的好方法。只有这样才能使用cfdirectory标记列出目录,从中获取查询,循环查询,直到找到所需文件,然后获取所需的元数据。 ColdFusion 8中的新函数GetFileInfo提供了一种获取有关文件或目录的所有元数据的简便方法。这将返回一个结构,如下所述。

  • name - 指定的文件/目录的名称。这只是文件名而不是绝对路径。
  • path - 文件/目录的完整路径。
  • parent - 父目录的完整路径。
  • type - “directory”如果filepath是一个目录,则为“file”。
  • size - 文件大小(以字节为单位)。
  • lastmodified - 上次修改此文件/目录的DateTime。
  • canRead - 如果此文件/目录具有“读取”权限,则为“true”。 “假”否则。
  • canWrite - 如果此文件/目录具有“写入”权限,则为“true”。 “假”否则。
  • isHidden - 如果隐藏此文件/目录,则为“true”。 “假”否则。

答案 2 :(得分:1)

这可能意味着文件被打开以进行写入,或者当前用户没有读取权限。