/** * Array with * * <p><name> <creationTime> <modificationTime> <dirFlag> <fileSize> * * <p>See {@link #lookupEntryInIndex(int)} */ private SqueakObject makeDirectoryEntryArray(File file) { // bah, Java doesn't provide the creation time. If it is // really necessary, it may be possible to use java-posix or // jtux. String name = file.getName(); long creationTime = file.lastModified(); long modificationTime = file.lastModified(); boolean dirFlag = file.isDirectory(); long fileSize = file.length(); try { Object[] array = { fHandler.makeStString(name), fHandler.squeakSeconds(creationTime), fHandler.squeakSeconds(modificationTime), fHandler.squeakBool(dirFlag), fHandler.pos32BitIntFor(fileSize) }; return fHandler.squeakArray(array); } catch (ArrayIndexOutOfBoundsException e) { System.out.println( "Error in FileSystemPrimitives.makeDirectoryEntryArray: name = '" + name + "'"); throw e; } }
/** * primAtEnd: id "Answer whether the receiver is currently at its end. 2/12/96 sw" * * <p><primitive: 150> ^ self primitiveFailed! */ Object fileAtEnd(int argCount) { if (argCount != 1) throw fHandler.primitiveFailed(); RandomAccessFile file = lookupFile(); try { return fHandler.squeakBool(file.getFilePointer() >= file.length()); } catch (IOException e) { e.printStackTrace(); } throw fHandler.primitiveFailed(); }