protected Map<String, Long> writeFileList(String destination, long offset) {
		
		Map<String, Long> filePathMap = new HashMap<String, Long>();
		String innerPath, rawPath;
		VDKRandomAccessFile raf = null;
		
		try {
			
			raf = new VDKRandomAccessFile(destination, "rw");
			
			for(VDKInnerDirectory d : getChildren()) {
								
				rawPath = destination.substring(0, destination.lastIndexOf("."));				
				innerPath = d.getSourcePath().substring(rawPath.length()+ 1);
				filePathMap.put(innerPath, d.getOffset());
				raf.writeString(innerPath, offset, VDK1FilePattern.FILE_PATH);
				raf.writeUnsignedInt(d.getOffset(), offset, VDK1FilePattern.FILE_OFFSET);				
				if(!(d instanceof VDKInnerFile))					
					filePathMap.putAll(d.writeFileList(destination, offset));
				offset += VDK1FilePattern.getPathNameBlockLength();				
			}
			
			raf.close();
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return filePathMap;	
	}