public synchronized boolean makeDirectory(String pathname) {
		if (pathname == null || (pathname.startsWith(FTP_SPERATOR_CHAR) && pathname.length() < 2)) {
			return false;
		}
		boolean isOk = false;
		boolean isAbsolutePath = pathname.startsWith(FTP_SPERATOR_CHAR); // 是否為絕對路徑, '/'開頭
		
		String[] paths = null; // 將路徑拆解
		StringBuffer currentPath = new StringBuffer();
		if (isAbsolutePath) { // 如果是絕對路徑
			paths = pathname.substring(1, pathname.length()).split(FTP_SPERATOR_CHAR);
			currentPath.append(FTP_SPERATOR_CHAR);
		} else {
			paths = pathname.split(FTP_SPERATOR_CHAR);
		}
		
		try {
			if (client.isConnected()) {
				for (int i = 0; i < paths.length; i++) {
					currentPath.append(paths[i]);
					boolean isExist = isExist(currentPath.toString());
					if (!isExist) {
						isOk = client.makeDirectory(currentPath.toString());
						logger.info(new StringBuffer(FTPUTIL_CLIENT_MKDIR_STR)
								.append(isOk)
								.append(LINE_STR).append(pathname).toString());
						if (!isOk) {
							logger.info(new StringBuffer(FTPUTIL_SERVER_REPLY_STR)
								.append(client.getReplyCode()).toString());
						}
					} else {
						isOk = true;
					}
					currentPath.append('/');
				}
			}
		} catch (IOException ioe) {
			isOk = false;
			logger.error(ioe);
		}
		return isOk;
	}