Re: Flowscript - delete file
Hi Peter, file.delete() doesn't get executed in this case. Its: if (!file.exists()) { throw new FileNotFoundException(filePath); that line of code that triggers your Error message and file.delete() has not been reached. Greetings, Greg 2012/12/29 Peter Sparkes pe...@didm.co.uk Hi Martin and Robby, Thank you both for your help, what I have ended up with is: importClass(Packages.java.io.File); importClass(Packages.java.io.FileNotFoundException); function deletefile() { //var filePath = cocoon.parameters[file]; var filePath = D:/cocoon-2.1.11-wl/build/webapp/BB/xml/.xml; //for testing var file = new File(filePath); try { if (!file.exists()) { throw new FileNotFoundException(filePath); } file.delete(); cocoon.sendPage('deletefilesuccess',{file:filePath}); } catch (e) { cocoon.sendPage('deletefileerror',{file:e}); } } However, file.delete(); produces a syntax error. If I comment out file.delete(), the rest of the script works correctly: - If .xml exists, deletefilesuccess is accessed - If .xml does not exist, deletefileerror is accessed and I get: Error File java.io.FileNotFoundException: D:/cocoon-2.1.11-wl/build/webapp/BB/xml/.xml Not Found What's wrong with file.delete(); ? Regards Peter On 27/12/2012 18:35, Martin Heiden wrote: Hi Peter, Ok, I missed something: var xml_file = Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file + .xml); should be: var xml_file = new Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file + .xml); But you should try the function Robby sent to the list. It's much cleaner. Regards, Martin. Thursday, December 27, 2012, 6:12:08 PM, you wrote: PS Hi Martin PS Thanks for your suggestion, unfortunately I get the same error. The error log gives: PS ERROR (2012-12-27) 15:30.46:723 [flow] (/office/deletefile_) PoolThread-4/JSErrorReporter: PS file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js, line 13: missing name after . PS operator PS ERROR (2012-12-27) 15:30.46:723 [sitemap.handled-errors] (/office/deletefile_) PS PoolThread-4/ErrorHandlerHelper: Sitemap: error calling function 'deletefile' PS at map:call - PS file:///D:/cocoon-2.1.11-wl/build/webapp/office/sitemap.xmap:230:37 PS at map:mount - PS file:///D:/cocoon-2.1.11-wl/build/webapp/sitemap.xmap:783:90 PS org.mozilla.javascript.EvaluatorException: PS file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js, line 1: Compilation produced 1 PS syntax errors. PS at PS org.apache.cocoon.components.flow.javascript.JSErrorReporter.runtimeError(JSErrorReporter.java:67) PS regards PS Peter PS On 27/12/2012 11:42, Martin Heiden wrote: Hi Peter, PS //Delete file PS Packages.java.io.File.xml_file.delete(); Try xml_file.delete(); You just have to add the full path to the class when you construct it. After this, the variable contains a reference and you can just use it. Regards, Martin. Thursday, December 27, 2012, 10:28:31 AM, you wrote: PS Hi, PS I am trying to delete xml files using the following flowscript: PS function deletefile() { PS //file to be deleted PS var file = PS Packages.java.lang.String(cocoon.parameters[file]); PS try { PS // creating a link to the file to be deleted PS var xml_file = PS Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file PS + .xml); PS //Delete file PS Packages.java.io.File.xml_file.delete(); PS // .txt file with OK message PS cocoon.sendPage(success.txt, null); PS } PS catch(ex){ PS cocoon.log.error(ex); PS // Smth. went wrong. Sending a error.txt file to the browser PScocoon.sendPage(error.txt, null); PS } PS } PS and get Compilation produced 1 syntax errors PS The error log contains: PS ERROR deletefile.js, line 13: missing name after . operator PS line 13 is: PS Packages.java.io.File.xml_file.delete(); PS What I am doing wrong? PS Peter - To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org For additional commands, e-mail: users-h...@cocoon.apache.org Ciao, Martin - To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org For additional commands, e-mail: users-h...@cocoon.apache.org
Re: Flowscript - delete file
Solved I found the answer at http://markmail.org/message/7psype56uhu5kbad#query:+page:1+mid:ezqkl6i255bjdw75+state:results I amended file.delete(); to: file[delete](); and it works, the file is deleted. However, I don't know why it works Thank you all for your help Peter On 29/12/2012 07:58, Peter Sparkes wrote: Hi Martin and Robby, Thank you both for your help, what I have ended up with is: importClass(Packages.java.io.File); importClass(Packages.java.io.FileNotFoundException); function deletefile() { //var filePath = cocoon.parameters[file]; var filePath = D:/cocoon-2.1.11-wl/build/webapp/BB/xml/.xml; //for testing var file = new File(filePath); try { if (!file.exists()) { throw new FileNotFoundException(filePath); } file.delete(); cocoon.sendPage('deletefilesuccess',{file:filePath}); } catch (e) { cocoon.sendPage('deletefileerror',{file:e}); } } However, file.delete(); produces a syntax error. If I comment out file.delete(), the rest of the script works correctly: * If .xml exists, deletefilesuccess is accessed * If .xml does not exist, deletefileerror is accessed and I get: Error File java.io.FileNotFoundException: D:/cocoon-2.1.11-wl/build/webapp/BB/xml/.xml Not Found What's wrong with file.delete(); ? Regards Peter On 27/12/2012 18:35, Martin Heiden wrote: Hi Peter, Ok, I missed something: var xml_file = Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file + .xml); should be: var xml_file = new Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file + .xml); But you should try the function Robby sent to the list. It's much cleaner. Regards, Martin. Thursday, December 27, 2012, 6:12:08 PM, you wrote: PS Hi Martin PS Thanks for your suggestion, unfortunately I get the same error. The error log gives: PS ERROR (2012-12-27) 15:30.46:723 [flow] (/office/deletefile_) PoolThread-4/JSErrorReporter: PSfile:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js, line 13: missing name after . PS operator PS ERROR (2012-12-27) 15:30.46:723 [sitemap.handled-errors] (/office/deletefile_) PS PoolThread-4/ErrorHandlerHelper: Sitemap: error calling function 'deletefile' PS at map:call - PSfile:///D:/cocoon-2.1.11-wl/build/webapp/office/sitemap.xmap:230:37 PS at map:mount - PSfile:///D:/cocoon-2.1.11-wl/build/webapp/sitemap.xmap:783:90 PS org.mozilla.javascript.EvaluatorException: PSfile:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js, line 1: Compilation produced 1 PS syntax errors. PS at PS org.apache.cocoon.components.flow.javascript.JSErrorReporter.runtimeError(JSErrorReporter.java:67) PS regards PS Peter PS On 27/12/2012 11:42, Martin Heiden wrote: Hi Peter, PS //Delete file PS Packages.java.io.File.xml_file.delete(); Try xml_file.delete(); You just have to add the full path to the class when you construct it. After this, the variable contains a reference and you can just use it. Regards, Martin. Thursday, December 27, 2012, 10:28:31 AM, you wrote: PS Hi, PS I am trying to delete xml files using the following flowscript: PS function deletefile() { PS //file to be deleted PS var file = PS Packages.java.lang.String(cocoon.parameters[file]); PS try { PS // creating a link to the file to be deleted PS var xml_file = PS Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file PS + .xml); PS //Delete file PS Packages.java.io.File.xml_file.delete(); PS // .txt file with OK message PS cocoon.sendPage(success.txt, null); PS } PS catch(ex){ PS cocoon.log.error(ex); PS // Smth. went wrong. Sending a error.txt file to the browser PScocoon.sendPage(error.txt, null); PS } PS } PS and get Compilation produced 1 syntax errors PS The error log contains: PS ERROR deletefile.js, line 13: missing name after . operator PS line 13 is: PS Packages.java.io.File.xml_file.delete(); PS What I am doing wrong? PS Peter - To unsubscribe, e-mail:users-unsubscr...@cocoon.apache.org For additional commands, e-mail:users-h...@cocoon.apache.org Ciao, Martin - To unsubscribe, e-mail:users-unsubscr...@cocoon.apache.org For additional commands, e-mail:users-h...@cocoon.apache.org
Re: Flowscript - delete file
Hi Peter, It's not flowscript, but I believe one can also use the source-writing transformer to delete xml files from the filesystem: page ... source:delete source:sourcecontext://doc/editable/my.xml/source:source source:delete ... /page One can insert the exact filename via a sitemap parameter/xslt variable earlier in the chain, then use: map:transform type=write-source/ to delete. See: https://cocoon.apache.org/2.1/userdocs/sourcewriting-transformer.html Dan On 2012-12-29 3:05 AM, Peter Sparkes wrote: Solved I found the answer at http://markmail.org/message/7psype56uhu5kbad#query:+page:1+mid:ezqkl6i255bjdw75+state:results I amended file.delete(); to: file[delete](); and it works, the file is deleted. However, I don't know why it works Thank you all for your help Peter
RE: Flowscript - delete file
Hi Peter, I did not test the script I wrote actually and I can tell you why the script runs into an error. .delete() is also a javascript method on an object. It will delete a property by the name you specify. As you clearly want to call the delete method on the file you need to use the workaround you used. Kind regards, Robby From: Peter Sparkes [mailto:pe...@didm.co.uk] Sent: Saturday, December 29, 2012 8:58 AM To: users@cocoon.apache.org Subject: Re: Flowscript - delete file Hi Martin and Robby, Thank you both for your help, what I have ended up with is: importClass(Packages.java.io.File); importClass(Packages.java.io.FileNotFoundException); function deletefile() { //var filePath = cocoon.parameters[file]; var filePath = D:/cocoon-2.1.11-wl/build/webapp/BB/xml/.xml; //for testing var file = new File(filePath); try { if (!file.exists()) { throw new FileNotFoundException(filePath); } file.delete(); cocoon.sendPage('deletefilesuccess',{file:filePathfile:///\\filePath}); } catch (e) { cocoon.sendPage('deletefileerror',{file:efile:///\\e}); } } However, file.delete(); produces a syntax error. If I comment out file.delete(), the rest of the script works correctly: * If .xml exists, deletefilesuccess is accessed * If .xml does not exist, deletefileerror is accessed and I get: Error File java.io.FileNotFoundException: D:/cocoon-2.1.11-wl/build/webapp/BB/xml/.xml Not Found What's wrong with file.delete(); ? Regards Peter On 27/12/2012 18:35, Martin Heiden wrote: Hi Peter, Ok, I missed something: var xml_file = Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file + .xml); should be: var xml_file = new Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file + .xml); But you should try the function Robby sent to the list. It's much cleaner. Regards, Martin. Thursday, December 27, 2012, 6:12:08 PM, you wrote: PS Hi Martin PS Thanks for your suggestion, unfortunately I get the same error. The error log gives: PS ERROR (2012-12-27) 15:30.46:723 [flow] (/office/deletefile_) PoolThread-4/JSErrorReporter: PS file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.jsfile:///D:\cocoon-2.1.11-wl\build\webapp\office\flow\deletefile.js, line 13: missing name after . PS operator PS ERROR (2012-12-27) 15:30.46:723 [sitemap.handled-errors] (/office/deletefile_) PS PoolThread-4/ErrorHandlerHelper: Sitemap: error calling function 'deletefile' PS at map:call - PS file:///D:/cocoon-2.1.11-wl/build/webapp/office/sitemap.xmap:230:37file:///D:\cocoon-2.1.11-wl\build\webapp\office\sitemap.xmap:230:37 PS at map:mount - PS file:///D:/cocoon-2.1.11-wl/build/webapp/sitemap.xmap:783:90file:///D:\cocoon-2.1.11-wl\build\webapp\sitemap.xmap:783:90 PS org.mozilla.javascript.EvaluatorException: PS file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.jsfile:///D:\cocoon-2.1.11-wl\build\webapp\office\flow\deletefile.js, line 1: Compilation produced 1 PS syntax errors. PS at PS org.apache.cocoon.components.flow.javascript.JSErrorReporter.runtimeError(JSErrorReporter.java:67) PS regards PS Peter PS On 27/12/2012 11:42, Martin Heiden wrote: Hi Peter, PS //Delete file PS Packages.java.io.File.xml_file.delete(); Try xml_file.delete(); You just have to add the full path to the class when you construct it. After this, the variable contains a reference and you can just use it. Regards, Martin. Thursday, December 27, 2012, 10:28:31 AM, you wrote: PS Hi, PS I am trying to delete xml files using the following flowscript: PS function deletefile() { PS //file to be deleted PS var file = PS Packages.java.lang.String(cocoon.parameters[file]); PS try { PS // creating a link to the file to be deleted PS var xml_file = PS Packages.java.io.File(D:\cocoon-2.1.11-wl\build\webapp\BB\xml + file PS + .xml); PS //Delete file PS Packages.java.io.File.xml_file.delete(); PS // .txt file with OK message PS cocoon.sendPage(success.txt, null); PS } PS catch(ex){ PS cocoon.log.error(ex); PS // Smth. went wrong. Sending a error.txt file to the browser PScocoon.sendPage(error.txt, null); PS } PS } PS and get Compilation produced 1 syntax errors PS The error log contains: PS ERROR deletefile.js, line 13: missing name after . operator PS line 13 is: PS Packages.java.io.File.xml_file.delete(); PS What I am doing wrong? PS Peter - To unsubscribe, e-mail: