private void copyFile(File f, boolean doJob) {

		if (getAnnotations().isUpToDate(f)) {
			return;
		}

		if (!doJob) {
			filesToCopy++;
			bytesToCopy += f.length();
			return;
		}
		try {
			System.out.print("Copying file " + f.getCanonicalPath() + "(" + (++currentFileToCopy) + "/" + filesToCopy + ", bytes " + copiedBytes + "/" + bytesToCopy + ")... ");
			FileUtil.copyFile(f, getTarget(f, getTargetPath()));
			copiedBytes += f.length();
			ann.newFile(f.getCanonicalPath());
		} catch (IOException ex) {
			throw new RuntimeException(ex);
		}
		System.out.println("done.");
	}