Thanks for the replies to my question. My function uses first list.files() to select the relevant files and then file.remove() to delete them.
Redefining file.remove() doesn't work in case of a package due to lexical scoping. Otherwise this would be a simple and portable solution. Having a Linux only solution is better than no solution at all. And it should be sufficient. Note that I had to use Sys.chmod("test", mode="0400") instead of Sys.chmod("test", mode="0000") because list.files() needs at least read permission. The Linux only unit test can be bypassed on other systems with testthat::skip_on_os(). Best regards, ir. Thierry Onkelinx Statisticus / Statistician Vlaamse Overheid / Government of Flanders INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE AND FOREST Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance thierry.onkel...@inbo.be Kliniekstraat 25, B-1070 Brussel www.inbo.be /////////////////////////////////////////////////////////////////////////////////////////// To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher The plural of anecdote is not data. ~ Roger Brinner The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data. ~ John Tukey /////////////////////////////////////////////////////////////////////////////////////////// Van 14 tot en met 19 december 2017 verhuizen we uit onze vestiging in Brussel naar het Herman Teirlinckgebouw op de site Thurn & Taxis. Vanaf dan ben je welkom op het nieuwe adres: Havenlaan 88 bus 73, 1000 Brussel. /////////////////////////////////////////////////////////////////////////////////////////// 2017-12-12 18:42 GMT+01:00 Tom Wainwright <tcwa...@gmail.com>: > In *nix systems, permission to delete is at the directory level, not the > file level, so you might try changing the mode of the parent directory, > rather than the file itself, as in: > >> > dir.create('test') >> > file.create(file.path("test",'file1')) >> [1] TRUE >> > Sys.chmod("test", mode="0000") >> > file.remove(file.path("test",'file1')) >> [1] FALSE >> Warning message: >> In file.remove(file.path("test", "file1")) : >> cannot remove file 'test/file1', reason 'Permission denied' >> > Sys.chmod("test", mode="0777") >> > file.remove(file.path("test",'file1')) >> [1] TRUE >> > > > > Not sure if this will work in Windows, though. > > Regards, > Tom Wainwright > > On Tue, Dec 12, 2017 at 4:24 AM, Thierry Onkelinx <thierry.onkel...@inbo.be> > wrote: >> >> Dear all, >> >> Some function I wrote deletes a bunch of files. It is crucial that all >> files get deleted. Hence it should return an error when one or more >> files couldn't be deleted. >> >> I'm writing a unit test for this function. I fail to create a file >> that can't be deleted by the function. I've tried Sys.chmod(file, >> "000") which didn't work. >> >> Any suggestions? >> >> Best regards, >> >> ir. Thierry Onkelinx >> Statisticus / Statistician >> >> Vlaamse Overheid / Government of Flanders >> INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE >> AND FOREST >> Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance >> thierry.onkel...@inbo.be >> Kliniekstraat 25, B-1070 Brussel >> www.inbo.be >> >> >> /////////////////////////////////////////////////////////////////////////////////////////// >> To call in the statistician after the experiment is done may be no >> more than asking him to perform a post-mortem examination: he may be >> able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher >> The plural of anecdote is not data. ~ Roger Brinner >> The combination of some data and an aching desire for an answer does >> not ensure that a reasonable answer can be extracted from a given body >> of data. ~ John Tukey >> >> /////////////////////////////////////////////////////////////////////////////////////////// >> >> >> Van 14 tot en met 19 december 2017 verhuizen we uit onze vestiging in >> Brussel naar het Herman Teirlinckgebouw op de site Thurn & Taxis. >> Vanaf dan ben je welkom op het nieuwe adres: Havenlaan 88 bus 73, 1000 >> Brussel. >> >> ______________________________________________ >> R-package-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-package-devel > > ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel