public void UnlockPath(String filePath, Boolean isWriteLock) {
		// check for the initial "/"
		if (filePath.indexOf("/") != 0) {
			filePath = "/" + filePath;
		}
		String[] filePathTokens = filePath.split("/");
		FileNode curFile = mFileRoot;
		// iterate through each directory in the path
		for (int i = 1; i < filePathTokens.length; ++i) {
			String dir = filePathTokens[i];
			boolean dirExists = false;
			if (!curFile.mIsDirectory) {
				if (isWriteLock) {
					curFile.ReleaseWriteLock();
					return;
				} else {
					curFile.ReleaseReadLock();
					return;
				}
			}
			// if a match is found, set current file to the match
			for (FileNode file : curFile.mChildren) {
				if (file.mName.equalsIgnoreCase(dir)) {
					curFile = file;
					dirExists = true;
					if (isWriteLock) {
						curFile.ReleaseWriteLock();
					} else {
						curFile.ReleaseReadLock();
					}
					break;
				}
			}
			if (!dirExists) {
				return;
			}
		}
	}