Re: Flowscript - delete file

Peter Sparkes <[email protected]>
Newsgroups gmane.text.xml.cocoon.user
Message-ID <[email protected]>
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:[email protected]
>>>> For additional commands, e-mail:[email protected]
>>>>
>>>>
>>
>>
>> Ciao,
>>   Martin
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:[email protected]
>> For additional commands, e-mail:[email protected]
>>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.