Windows: delete NUL files with gradle


(elsamuko) #1

Running gradle under windows, I cannot delete NUL files created from other tools. For example, running this twice won’t work:

task createNUL << {
    "mkdir tmp".execute()
    "touch tmp/NUL".execute()
}
  task deleteNUL( type: Delete ) {
    dependsOn createNUL
    delete 'tmp'
}

My assumption is, that this could be a Java issue, since NUL is a reserved filename: http://support.microsoft.com/kb/74496

This doesn’t work too:

import java.io.File;
  public class Example {
   public static void main( String[] args ) {
      try{
         File f = new File( "NUL" );
         f.delete();
      } catch( Exception e ) {
         e.printStackTrace();
      }
   }
}

Any tips?


(Peter Niederwieser) #2

As a last resort, you could try an ‘Exec’ task that executes a shell command via ‘cmd.exe’.


(elsamuko) #3

Thanks for your reply.

I solved it for now with calling a perl script (perl also auto-created that NUL file while configuring openssl), which deletes the NUL file. It would be nice though, if there was a Gradle/Groovy only solution, since this is easier to debug than an external perl script.

These reserved files are strange though, perl can delete them, cygwin can delete them, Java and File Explorer cannot.