Re: Flowscript - delete file
Peter Sparkes <[email protected]>
| Newsgroups | gmane.text.xml.cocoon.user |
|---|---|
| Message-ID | <[email protected]> |
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]
>
>