3

我正在尝试删除并重新创建测试文件,但出现以下错误。谁能告诉我为什么会这样?

错误:

ColdFusion could not delete the file e:\sample\test2.html for an unknown reason.

代码:

<cfif FileExists("e:\sample\test2.html")>
   <cffile action="delete"file="e:\sample\test2.html"><br>
   <p>deleted the file </p>
<cfelse>
   <p>Sorry, can't delete the file - it doesn't exist.</p>
</cfif>

<cfset createObject("java", "java.lang.Thread").sleep(JavaCast("int", 90000))>
<cfsavecontent variable="HTML">
    <cfinclude template="noticeEmail.cfm">
</cfsavecontent>        

<cffile action="WRITE"  attributes = "normal" nameconflict="Overwrite"  
      file="e:\sample\test2.html" output="#HTML#">
4

4 回答 4

2

我要检查的第一件事是运行 ColdFusion 的用户的权限。
我不知道您是如何运行 CF 或在什么样的环境中运行的,但假设这是一个本地开发环境,在 Windows 机器上并且正在将 ColdFusion 作为服务运行:

  • 在服务管理器中找到 ColdFusion 服务(开始 -> 运行 -> services.msc)
  • 右键单击 ColdFusion 服务,然后在登录选项卡中查找“以谁的身份运行。(该服务可以根据其安装方式命名,但查找“ColdFusion 9 应用程序服务器”,任何以 JRun 开头的内容)或宏媒体)
  • 如果这不是本地系统,那么您需要确认用户具有对 e:\sample\test2.html 的读/写访问权限

其他可能导致错误的事情,另一个程序是否可以锁定此文件,文件在创建后发生了什么(是否仅通过 ColdFusion 创建)

您还可以发布您收到的实际错误吗?
如果是“抱歉,无法删除文件 - 它不存在”。然后这是由于您在顶部进行的检查以确认文件是否存在。

最后,您在上面粘贴的代码似乎每行都缺少第一个字符,值得修复此问题,以便其他人可以更轻松地复制和粘贴代码。

于 2012-04-17T09:11:44.310 回答
1

我遇到了同样的问题,尽管我找到的答案都没有适用。虽然我的文件通过了 FileExists 测试,但实际删除仍然失败。我正在使用变量构建文件名:

<cfset sFilename = REQUEST.SubscriberWebFiles
                        & form.SubscriberID & "\Attachments\" 
                        & qryAttachmentsTrash.AttachmentName>

我用 Trim 包装了代码:

<cfset sFilename = Trim(REQUEST.SubscriberWebFiles
                       & form.SubscriberID & "\Attachments\" 
                       & qryAttachmentsTrash.AttachmentName)>

问题神奇地消失了!

于 2012-09-01T15:21:54.257 回答
0

您可以使用此代码通过 ColdFusion 删除 MS Word 文档

<cfif FileExists( WordFilePath &".doc")>
   <cffile action="delete"
       file="#WordFilePath#.doc">
<cfelse>
    Sorry, can't delete the file - it doesn't exist.
</cfif>
于 2012-04-20T09:23:04.233 回答
0

您的 Web 服务器/操作系统可能会保留该文件。您可以尝试在不打开文件的情况下创建文件,然后查看是否将其删除吗?因此,只需创建一个文件,然后立即将其删除。

于 2012-04-24T18:57:25.803 回答