Java Path Relative Get getRelativePath(final File parentDirectory, final File file)

Here you can find the source of getRelativePath(final File parentDirectory, final File file)

Description

Return the relative path of the file from the parentDirectory.

License

Apache License

Parameter

Parameter Description
parentDirectory The parent directory.
file The file to return the relative path for.

Exception

Parameter Description
IOException If an I/O error occurs.

Return

The relative path.

Declaration

public static String getRelativePath(final File parentDirectory, final File file) 

Method Source Code


//package com.java2s;
/*// w  w w . j  av  a 2s .c  o m
 * Copyright 2004-2005 Revolution Systems Inc.
 *
 * 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.
 */

import java.io.File;

import java.io.IOException;

public class Main {
    /**
     * Return the relative path of the file from the parentDirectory. For example
     * the relative path of c:\Data\Files\file1.txt and c:\Data would be
     * Files\file1.txt.
     *
     * @param parentDirectory The parent directory.
     * @param file The file to return the relative path for.
     * @return The relative path.
     * @throws IOException If an I/O error occurs.
     */
    public static String getRelativePath(final File parentDirectory, final File file) {
        final String parentPath = getCanonicalPath(parentDirectory);
        final String filePath = getCanonicalPath(file);
        if (filePath.startsWith(parentPath)) {
            return filePath.substring(parentPath.length() + 1);
        }
        return filePath;
    }

    public static String getCanonicalPath(final File file) {
        try {
            return file.getCanonicalPath();
        } catch (final IOException e) {
            return file.getAbsolutePath();
        }
    }

    public static String getCanonicalPath(final String fileName) {
        final File file = new File(fileName);
        return getCanonicalPath(file);
    }
}

Related

  1. getRelativePath(final File basePathFile, final File pathFile)
  2. getRelativePath(final File file, final File folder)
  3. getRelativePath(final File from, final File to)
  4. getRelativePath(final File fromFile, final File toFile)
  5. getRelativePath(final File parentDir, final File file)
  6. getRelativePath(final String base, final File targetFile)
  7. getRelativePath(String base, String fullPath)
  8. getRelativePath(String base, String relative, boolean isBaseFile)
  9. getRelativePath(String baseFullPath, File file)