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/B&B/xml/9999.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 9999.xml exists, deletefilesuccess is accessed
>    - If 9999.xml does not exist, deletefileerror is accessed and I get:
>    Error File java.io.FileNotFoundException:
>    D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/9999.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\B&B\xml" + file + 
> ".xml");
>
> should be:
>
>  var xml_file = new 
> Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\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_9999) 
> 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_9999)
> 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\B&B\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
> PS>            cocoon.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
>
>
>

Reply via email to