private String extractWindowsRootPrefix()

in commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/local/WindowsFileNameParser.java [113:142]


    private String extractWindowsRootPrefix(final String uri, final StringBuilder name) throws FileSystemException {
        // Looking for:
        // ('/'){0, 3} <letter> ':' '/'
        // ['/'] '//' <name> '/' <name> ( '/' | <end> )

        // Skip over first 4 (unc) leading '/' chars
        int startPos = 0;
        final int maxlen = Math.min(4, name.length());
        while (startPos < maxlen && name.charAt(startPos) == '/') {
            startPos++;
        }
        if (startPos == maxlen && name.length() > startPos + 1 && name.charAt(startPos + 1) == '/') {
            // Too many '/'
            throw new FileSystemException("vfs.provider.local/not-absolute-file-name.error", uri);
        }
        name.delete(0, startPos);

        // Look for drive name
        final String driveName = extractDrivePrefix(name);
        if (driveName != null) {
            return driveName;
        }

        // Look for UNC name
        if (startPos < 2) {
            throw new FileSystemException("vfs.provider.local/not-absolute-file-name.error", uri);
        }

        return "//" + extractUNCPrefix(uri, name);
    }