public void moveFileToDownloadsDir() throws Exception {
		try {
			rwlock.writeLock().lock();
			String completedDir = this.manager.getFinishedDownloadDir();

			File completeFile = new File(completedDir, FileNameUtils
					.sanitizeFilepathForLocalOS(this.getOutputFileName()));
			// completeFile = new File
			// (FileNameUtils.sanitizeFilepathForLocalOS(completeFile));

			if (!this.incompleteFile.exists() && this.getFileSize() > 0) {
				D.out("Could not move finished download to " + completeFile
						+ " because incomplete file does not exist (anymore)");
				return;
			}

			if (completeFile.exists()) {
				D.out("Could not move finished download to " + completeFile
						+ " because it exists");
				// since this should not happen (downloading the "same" file
				// twice)
				// we return
				return;
			}

			// create and forget ;)
			completeFile.getParentFile().mkdirs();

			if (!completeFile.createNewFile()) {
				D.out("Could not create finished download " + completeFile);
				return;
			}

			// if the file had 0 bytes then we did not download it anyway, so we
			// cannot move anything.
			if (this.fileSize == 0) {
				completeFile.createNewFile();
				incompleteFile.delete();
			} else {
				manager.getMaintainaner().moveFile(this.incompleteFile,
						completeFile);
			}

		} finally {
			rwlock.writeLock().unlock();
		}

	}