public final String createBackup(final String suffix) {
		if (this.parent == null) {
			throw new RuntimeException("Error renaming root");
		}
		final StringBuilder string = new StringBuilder();
		final String base, end;
		final int dot = this.filename.lastIndexOf('.');
		if (dot < 0) {
			base = this.filename;
			end = "";
		} else {
			base = this.filename.substring(0, dot);
			end = this.filename.substring(dot);
		}
		string.appendLast(base);
		string.appendLast(suffix);
		while (true) {
			final Path newPath = this.parent.resolve(string.toString() + end);
			if (!newPath.exists()) {
				if (renameTo(newPath)) {
					return string.appendLast(end).toString();
				}
				return null;
			}
			string.appendLast(suffix);
		}
	}