1 21 22 package org.armedbear.lisp; 23 24 import java.io.File ; 25 26 public final class delete_file extends Primitive1 27 { 28 private delete_file() 29 { 30 super("delete-file", "filespec"); 31 } 32 33 public LispObject execute(LispObject arg) throws ConditionThrowable 35 { 36 LispObject truename = Pathname.truename(arg, false); 37 if (arg instanceof Stream) 38 ((Stream)arg)._close(); 39 if (truename instanceof Pathname) { 40 File file = Utilities.getFile((Pathname)truename); 42 for (int i = 0; i < 5; i++) { 43 if (file.delete()) 44 return T; 45 System.gc(); 46 Thread.yield(); 47 } 48 StringBuffer sb = new StringBuffer ("Unable to delete "); 49 sb.append(file.isDirectory() ? "directory " : "file "); 50 sb.append(truename.writeToString()); 51 sb.append('.'); 52 return signal(new FileError(sb.toString())); 53 } else { 54 return T; 56 } 57 } 58 59 private static final Primitive1 DELETE_FILE = new delete_file(); 60 } 61 | Popular Tags |