Mercurial Hosting > luan
comparison core/src/luan/modules/IoLuan.java @ 751:558740169005
improve file delete()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 15 Jul 2016 15:56:19 -0600 |
parents | 85f5444fb7d4 |
children | ea5f3a254b76 |
comparison
equal
deleted
inserted
replaced
750:f172f1dff4b6 | 751:558740169005 |
---|---|
546 File tmp = File.createTempFile(prefix,suffix,file); | 546 File tmp = File.createTempFile(prefix,suffix,file); |
547 tmp.deleteOnExit(); | 547 tmp.deleteOnExit(); |
548 return new LuanFile(luan,tmp).table(); | 548 return new LuanFile(luan,tmp).table(); |
549 } | 549 } |
550 | 550 |
551 public void delete() throws LuanException { | |
552 if( file.exists() ) | |
553 delete(file); | |
554 } | |
555 | |
556 private static void delete(File file) throws LuanException { | |
557 File[] children = file.listFiles(); | |
558 if( children != null ) { | |
559 for( File child : children ) { | |
560 delete(child); | |
561 } | |
562 } | |
563 if( !file.delete() ) | |
564 throw new LuanException("couldn't delete file "+file); | |
565 } | |
566 | |
551 @Override public LuanTable table() { | 567 @Override public LuanTable table() { |
552 LuanTable tbl = super.table(); | 568 LuanTable tbl = super.table(); |
553 try { | 569 try { |
554 tbl.rawPut( "name", new LuanJavaFunction( | 570 tbl.rawPut( "name", new LuanJavaFunction( |
555 File.class.getMethod( "getName" ), file | 571 File.class.getMethod( "getName" ), file |
559 ) ); | 575 ) ); |
560 tbl.rawPut( "is_file", new LuanJavaFunction( | 576 tbl.rawPut( "is_file", new LuanJavaFunction( |
561 File.class.getMethod( "isFile" ), file | 577 File.class.getMethod( "isFile" ), file |
562 ) ); | 578 ) ); |
563 tbl.rawPut( "delete", new LuanJavaFunction( | 579 tbl.rawPut( "delete", new LuanJavaFunction( |
564 File.class.getMethod( "delete" ), file | 580 LuanFile.class.getMethod( "delete" ), this |
565 ) ); | 581 ) ); |
566 tbl.rawPut( "mkdir", new LuanJavaFunction( | 582 tbl.rawPut( "mkdir", new LuanJavaFunction( |
567 File.class.getMethod( "mkdir" ), file | 583 File.class.getMethod( "mkdir" ), file |
568 ) ); | 584 ) ); |
569 tbl.rawPut( "mkdirs", new LuanJavaFunction( | 585 tbl.rawPut( "mkdirs", new LuanJavaFunction( |