Java URI to Path getPath(final URI uri)

Here you can find the source of getPath(final URI uri)

Description

Resolves the specified URI, and returns an absolute file system path to the resource represented by the URI.

License

Apache License

Parameter

Parameter Description
uri The URI for which to return an absolute path.

Exception

Parameter Description
IllegalArgumentException <ul><li>The URI cannot be null.</li><li>Wrong URI scheme for path resolution;only file:// URIs are supported.</li></ul>

Return

A file system path to the resource represented by the specified URI.

Declaration

public static String getPath(final URI uri) throws IllegalArgumentException 

Method Source Code


//package com.java2s;
/*//from   www  . j a v a2  s .  c o  m
   Copyright 2009 Tomer Gabel <tomer@tomergabel.com>
    
   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.
    
    
   ant-intellij-tasks project (http://code.google.com/p/ant-intellij-tasks/)
    
   $Id$
*/

import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class Main {
    /**
     * Resolves the specified URI, and returns an absolute file system path to the resource represented by the URI.
     *
     * @param uri The URI for which to return an absolute path.
     * @return A file system path to the resource represented by the specified URI.
     * @throws IllegalArgumentException <ul><li>The URI cannot be null.</li><li>Wrong URI scheme for path resolution;
     *                                  only file:// URIs are supported.</li></ul>
     */
    public static String getPath(final URI uri) throws IllegalArgumentException {
        return getFile(uri).getAbsolutePath();
    }

    /**
     * Resolves the specified URI, and returns the file represented by the URI.
     *
     * @param uri The URI for which to return an absolute path.
     * @return The {@link File} instance represented by the specified URI.
     * @throws IllegalArgumentException <ul><li>The URI cannot be null.</li><li>Wrong URI scheme for path resolution;
     *                                  only file:// URIs are supported.</li></ul>
     */
    public static File getFile(URI uri) throws IllegalArgumentException {
        if (uri == null)
            throw new IllegalArgumentException("The URI cannot be null.");
        if (!"file".equals(uri.getScheme()))
            throw new IllegalArgumentException("Wrong URI scheme for path resolution, expected \"file\" "
                    + "and got \"" + uri.getScheme() + "\"");

        // Workaround for the following bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5086147
        // Remove (or add, take your pick...) extra slashes after the scheme part.
        if (uri.getAuthority() != null)
            try {
                uri = new URI(uri.toString().replace("file://", "file:/"));
            } catch (URISyntaxException e) {
                throw new IllegalArgumentException(
                        "The specified URI contains an authority, but could not be " + "normalized.", e);
            }

        return new File(uri);
    }
}

Related

  1. getPath(final URI uri)
  2. getPath(String uriStr)
  3. getPath(URI addr)
  4. getPath(URI uri)