public void destroy(String filename) throws Exception {
		int fileDescriptorIndex = findIndexOfFileDescriptor(filename,true);
		for(int i = 0; i < oft.index.length; i++) {
			if (oft.index[i] == fileDescriptorIndex) {
				System.out.println("Closing before destroying: " + i);
				close(i);
			}
		}
				
		FileDescriptor fd = FileDescriptor.getFileDescriptorInfo(fileDescriptorIndex);
		
		//Clear bitmap
		for(int i = 0; i <fd.blocks.length; i++){
			if(fd.blocks[i] != -1){
				setBitZero(fd.blocks[i]);
			}
		}
		
		//Free file descriptor
		int byteIndex = 1 * IOSystem.SIZE_OF_BLOCK_IN_BYTES + (fileDescriptorIndex * FileSystem.DESCRIPTOR_SIZE_IN_BYTES);
		int blockNumber = (int) Math.floor(byteIndex/IOSystem.SIZE_OF_BLOCK_IN_BYTES); //Figure out which block this byte is in, and read in that block
		int memIndex = byteIndex % IOSystem.SIZE_OF_BLOCK_IN_BYTES; //Beacuse we are reading in one block, we must offset the aboslute byte location by the read-in block's location
		byte[] mem = IOSystem.readBlock(blockNumber);
		for(int i = memIndex; i < memIndex + 4 * FileSystem.SIZE_OF_INT_IN_BYTES; i++) {
			mem[i] = -1;
		}
		IOSystem.writeBlock(blockNumber, mem);
		
		writer.write(filename + " destroyed");
		writer.newLine();
	
	}