2012-04-17 19 views
3

我想刪除並重新創建一個測試文件,但得到下面的錯誤。誰能告訴我爲什麼會發生這種情況?ColdFusion無法刪除文件,原因未知

錯誤:

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#"> 
+2

這與你的錯誤沒有任何關係,但'nameconflict'屬性不適用於'action =「write」',只能上傳。 – Leigh 2012-04-18 15:53:07

回答

2

我會檢查的第一件事是爲ColdFusion的運行爲用戶權限。
我不知道你是如何運行的CF或者你是什麼樣的環境對但假設這是一個地方發展環境,是在Windows機器上並運行ColdFusion作爲一項服務:

  • 查找在服務管理器中的ColdFusion服務(開始 - >運行 - > SERVICES.MSC)
  • 右鍵單擊ColdFusion服務,並期待在日誌選項卡上的發現「,這是運行的誰(該服務。可以命名爲幾件事取決於它如何安裝,但 尋找「ColdFusion 9應用服務器」,任何東西開始 JRun或Macromedia)
  • 如果不是本地系統,那麼你就需要確認用戶有讀/寫訪問E:\樣本\ test2.html

其他的東西,可能會導致錯誤,可能另一個程序將此文件鎖定,創建後文件發生了什麼(是否僅通過ColdFusion創建)

也可以發佈您收到的實際錯誤嗎?
如果是「對不起,無法刪除文件 - 它不存在」。那麼這是由於您在頂部檢查以確認文件是否存在。

最後,上面粘貼的代碼似乎每行都缺少第一個字符,值得修復此問題以便其他人可以更輕鬆地複製和粘貼代碼。

+0

Fyi,修改後添加缺少的字符。 – Leigh 2012-04-18 15:51:46

+0

我遇到了同樣的問題,事實證明文件被鎖定,因爲當我去刪除它時,CF仍在上傳它。 – ConfusedDeer 2014-01-29 18:16:05

0

您可以使用此代碼使用ColdFusion

<cfif FileExists(WordFilePath &".doc")> 
    <cffile action="delete" 
     file="#WordFilePath#.doc"> 
<cfelse> 
    Sorry, can't delete the file - it doesn't exist. 
</cfif> 
+0

是的,這正是他已經在做的:)但由於某種原因文件被鎖定,因此刪除失敗。此外,您的代碼片段缺少開頭的'<'符號(現在已修復)。要發佈CFML片段,只需使用代碼示例選項即「{}」 – Leigh 2012-04-26 01:10:39

+0

ok ......................... – user933909 2012-07-12 14:09:27

0

您的Web服務器/ OS可能會持有到要刪除的文件的MS Word文檔。你可以嘗試創建文件而不打開它,看看你是否刪除它?所以只需創建一個文件,然後立即刪除它。

0

我遇到了同樣的問題,雖然沒有找到答案。儘管我的文件通過了FileExists測試,但它仍然沒有通過實際的刪除操作。我用的變量建立的文件名:

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

我包的代碼用修剪:

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

和問題奇蹟般地消失了!