2012-04-17 2 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

ответ

2

Первое, что я хотел бы проверить это права доступа для пользователя, ColdFusion выполняется, как.
я не знаю, как вы используете CF или в какой среде вы на, но при условии, что это локальная среда разработки, находятся на машине окна и работает ColdFusion в качестве сервиса:

  • Найдите службу ColdFusion в диспетчере служб (запуск -> прогон -> services.msc)
  • Щелкните правой кнопкой мыши на службе ColdFusion и зайдите на вкладку входа в систему, чтобы найти «кто это работает как (служба можно назвать несколько вещей в зависимости от того, как он установлен, но искать «Сервер приложений ColdFusion 9», что-нибудь начинающееся с JRun или Macromedia)
  • Если это не локальная система, то вам необходимо подтвердить, что/записи для электронной пользователь прочитал: \ Образец \ test2.html

Другие вещи, которые могут привести к ошибкам, могли другую программу заблокировать этот файл, что происходит с файлом после его создания (создается ли он только через ColdFusion)

Также вы можете отправить фактическую ошибку, которую вы получаете?
Если это «Извините, вы не можете удалить файл - его не существует». Тогда это связано с проверкой, которую вы получили в верхней части, чтобы подтвердить, существует ли файл.

Наконец, код, который вы вставили выше, кажется, имеет первый символ, отсутствующий в каждой строке, было бы целесообразно исправить это, чтобы другие могли легче скопировать и вставить код.

+0

Fyi, сообщение изменено для добавления недостающих символов. – Leigh

+0

Я столкнулся с той же проблемой, и, как оказалось, файл был заблокирован, потому что CF все еще загружал его, когда я пошел его удалять. – ConfusedDeer

0

Вы можете использовать этот код, чтобы удалить документ MS Word с 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

+0

ok ......................... – user933909

0

Ваш веб-сервер/OS может удерживать на файл. Можете ли вы попробовать создать файл, не открывая его, и посмотреть, удалили ли вы его? Поэтому просто создайте файл и сразу удалите его.

0

У меня была такая же проблема, хотя ни один из ответов, которые я нашел, не применялся. Хотя мой файл прошел тест FileExists, он все равно не удалил фактическое удаление. Я строила имя файла с помощью переменных:

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

Я завернул код с отделкой:

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

и проблема волшебным образом исчезла!

Смежные вопросы