if(getFileSystem().isReadOnly()) { throw new ReadOnlyFileSystemException("setLength in readonly filesystem"); }
	public synchronized void setLength(long length) 	throws IOException {				if (this.length == length) {			// Do nothing			return;		}				final FatFileSystem fs = getFatFileSystem();		final Fat fat = fs.getFat();		final int nrClusters = (int)((length + clusterSize-1) / clusterSize);       if (this.length == 0) {			final long[] chain = fat.allocNew(nrClusters);			this.startCluster = chain[0];			this.myEntry.setStartCluster((int)startCluster);		} else {			final long[] chain = fs.getFat().getChain(startCluster);					if (nrClusters != chain.length) {				if (nrClusters > chain.length) {					// Grow					int count = nrClusters - chain.length; 					while (count > 0) {						fat.allocAppend(getStartCluster());						count--;					}												} else {					// Shrink					fat.setEof(chain[nrClusters-1]);					for (int i = nrClusters; i < chain.length; i++) {						fat.setFree(chain[i]);					}				}			}		}						this.length = length;		this.myEntry.updateLength(length);	}