【问题标题】:In ColdFusion does FileRead close the file it opens?在 ColdFusion 中,FileRead 会关闭它打开的文件吗?
【发布时间】:2019-09-28 02:22:08
【问题描述】:

如果我使用路径参数调用fileRead(而不是使用fileOpen 显式打开的文件对象),ColdFusion 会关闭它打开的文件吗?这在任何地方都有记录吗?我在 Adob​​e 或 CFDocs 的页面上都没有看到任何关于这种行为保证的内容。

【问题讨论】:

    标签: coldfusion


    【解决方案1】:

    是的,文件命令是自包含的过程,可以打开、作用于文件然后关闭。这是任何独立命令的标准期望。

    【讨论】:

    • 我同意这是人们所期望的行为,但我无法在任何地方找到它的文档,因此依赖它有点令人不安——我不想要任意数量的文件句柄闲逛和浪费资源。我会继续寻找文档!
    • @DavidRogers 您可以提交错误报告,在 CFML Slack 上联系 CF 产品人员,或者在下周的 CF 峰会上找一位 CF 开发人员并要求他们更新文档。跨度>
    • @AdrianJ.Moreno 不是叫“Lucee”吗?
    • @DavidRogers - 遗漏可能是 CF 非常非常早期的遗留问题。从历史上看,它旨在简化文件访问、查询数据库等常见任务。大多数标签和函数甚至从未暴露低级对象,如句柄。因此,文件函数会自动关闭底层文件句柄是隐含的。 (就像“理解”一样,您在使用查询标签/功能时不必手动关闭数据库连接)。一旦 CF8 向开发人员公开文件句柄,Adobe 可能应该更新文档,但从未更新。
    • 在过去的 7 年里,我从未遇到过 fileRead 的任何问题。只是不要在大文件上使用它,因为它会将文件内容缓冲在内存中。这就是使用fileOpen 进行流式传输的目的。而那个要求你使用 try/catch/finally 和 fileClose
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多