Java Relative Path Get relativePath(File baseDir, File storeFile)

Here you can find the source of relativePath(File baseDir, File storeFile)

Description

Given a directory and a path under it, return filename of the path relative to the directory.

License

Open Source License

Parameter

Parameter Description
baseDir The base directory, containing the storeFile
storeFile The store file path, must be contained under <code>baseDir</code>

Exception

Parameter Description
IOException As per File#getCanonicalPath()

Return

The relative path of storeFile to baseDir

Declaration

public static String relativePath(File baseDir, File storeFile) throws IOException 

Method Source Code

//package com.java2s;
/*/*from ww  w. j  a v a2s.co  m*/
 * Copyright (c) 2002-2015 "Neo Technology,"
 * Network Engine for Objects in Lund AB [http://neotechnology.com]
 *
 * This file is part of Neo4j.
 *
 * Neo4j 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 3 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, see <http://www.gnu.org/licenses/>.
 */

import java.io.File;

import java.io.FileNotFoundException;

import java.io.IOException;

public class Main {
    /**
    * Given a directory and a path under it, return filename of the path
    * relative to the directory.
    *
    * @param baseDir The base directory, containing the storeFile
    * @param storeFile The store file path, must be contained under
    * <code>baseDir</code>
    * @return The relative path of <code>storeFile</code> to
    * <code>baseDir</code>
    * @throws IOException As per {@link File#getCanonicalPath()}
    */
    public static String relativePath(File baseDir, File storeFile) throws IOException {
        String prefix = baseDir.getCanonicalPath();
        String path = storeFile.getCanonicalPath();
        if (!path.startsWith(prefix)) {
            throw new FileNotFoundException();
        }
        path = path.substring(prefix.length());
        if (path.startsWith(File.separator)) {
            return path.substring(1);
        }
        return path;
    }
}

Related

  1. relativeFile(File file, String relativeTo)
  2. relativeFile(Iterable paths, String file)
  3. relativeFileName(final File baseDir, final File file)
  4. relativeFrom(File from, File to)
  5. relativePath(File baseDir, File child)
  6. relativePath(File baseDir, File storeFile)
  7. relativePath(File descendant, File root)
  8. relativePath(File file, String path)
  9. relativePath(File from, File to)