Java Path Relative makeRelativePath(File parent, File file)

Here you can find the source of makeRelativePath(File parent, File file)

Description

Find the relative path from some parent directory to a file nested within.

License

Open Source License

Parameter

Parameter Description
parent The containing directory
file The file to get the relative path to

Return

The relative path between parent and file

Declaration

public static String makeRelativePath(File parent, File file) 

Method Source Code

//package com.java2s;
/*//from w  w w . j  a  v a  2s.  c  om
 This file is part of the BlueJ program. 
 Copyright (C) 1999-2009,2014  Michael Kolling and John Rosenberg 
     
 This program is free software; you can redistribute it and/or 
 modify it under the terms of the GNU General Public License 
 as published by the Free Software Foundation; either version 2 
 of the License, or (at your option) any later version. 
     
 This program is distributed in the hope that it will be useful, 
 but WITHOUT ANY WARRANTY; without even the implied warranty of 
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 GNU General Public License for more details. 
     
 You should have received a copy of the GNU General Public License 
 along with this program; if not, write to the Free Software 
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. 
     
 This file is subject to the Classpath exception as provided in the  
 LICENSE.txt file that accompanied this code.
 */

import java.io.*;

public class Main {
    /**
     * Find the relative path from some parent directory to a file nested within.
     * For instance, for parent "/a/b" and file "/a/b/c/d/somefile.java" returns
     * "c/d/somefile.java".
     * 
     * @param parent  The containing directory
     * @param file    The file to get the relative path to
     * @return   The relative path between parent and file
     */
    public static String makeRelativePath(File parent, File file) {
        String filePath = file.getAbsolutePath();
        String parentPath = parent.getAbsolutePath();

        if (filePath.startsWith(parentPath)) {
            // Strip parent path and path separator
            filePath = filePath.substring(parentPath.length() + 1);
        }

        return filePath;
    }
}

Related

  1. getRelativeName(final File file)
  2. getRelativeParentDirectory(File base, File file)
  3. getRelativeTemporaryFilename(String directory, String suffix, boolean autodelete)
  4. getRelativeUnixPath(File baseDir, File refFile)
  5. makeRelativePath(File from, File to)
  6. makeRelativePath(IPath path, IPath relativeTo)
  7. makeRelativePathAbsolute(String relativePath)
  8. makeRelativePaths(String classDir, List files)
  9. makeRelativePathToIncludes(IPath fullPath, String[] includePaths)