cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Sparkes <pe...@didm.co.uk>
Subject Re: Flowscript - delete file
Date Sat, 29 Dec 2012 11:05:33 GMT
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/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-unsubscribe@cocoon.apache.org
>>>> For additional commands, e-mail:users-help@cocoon.apache.org
>>>>
>>>>
>>
>>
>> Ciao,
>>   Martin
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:users-unsubscribe@cocoon.apache.org
>> For additional commands, e-mail:users-help@cocoon.apache.org
>>
>>
>


Mime
View raw message