Java Path Combine combinePath(String parent, String child)

Here you can find the source of combinePath(String parent, String child)

Description

path is combined and normalized.

License

Apache License

Parameter

Parameter Description
parent a parameter
child a parameter
sep a parameter

Declaration

@SuppressWarnings("PMD")
public static String combinePath(String parent, String child) 

Method Source Code

//package com.java2s;
/*/*  w ww .j a  v  a  2  s .  c o  m*/
 * Copyright 2002-2012 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    /**
     * path is combined and normalized.
     * 
     * @param parent
     * @param child
     * @param sep
     * @return
     */
    @SuppressWarnings("PMD")
    public static String combinePath(String parent, String child) {
        if (parent == null && child == null) {
            return null;
        } else if (parent == null || parent.length() == 0) {
            return normalize(child);
        } else if (child == null || child.length() == 0) {
            return normalize(parent);
        }
        child = normalize(child);
        return normalize(parent) + (child.startsWith("/") ? "" : "/") + child;
    }

    /**
     * change path to normized path. it's separator is '/'.
     * 
     * @param path
     * @return path with separated '/'. it is not end with '/'.
     */
    @SuppressWarnings("PMD")
    public static String normalize(String path) {
        if (path == null) {
            return null;
        }

        path = path.replaceAll("\\\\", "/");
        if (!"/".equals(path) && path.endsWith("/")) {
            path = path.substring(0, path.length() - 1);
        }
        return path;
    }
}

Related

  1. combine(final String path1, final String path2)
  2. combine(String directory, String filename)
  3. combineDisplayPaths(String parent_display, String display_path)
  4. combinePath(java.io.File parentDir, String... childDirs)
  5. combinePath(String basePath, String withPath)
  6. combinePath(String parent, String name)
  7. combinePath(String part0, String... parts)
  8. combinePath(String path1, String path2)
  9. combinePath(String path1, String path2, String pathSeperator)