public List getFileList()

in wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java [348:406]


    public List<String> getFileList( String destinationDirectory )
        throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
    {
        if ( destinationDirectory.length() == 0 )
        {
            destinationDirectory = ".";
        }
        
        String filename = ScpHelper.getResourceFilename( destinationDirectory );

        String dir = ScpHelper.getResourceDirectory( destinationDirectory );

        // we already setuped the root directory. Ignore beginning /
        if ( dir.length() > 0 && dir.charAt( 0 ) == ScpHelper.PATH_SEPARATOR )
        {
            dir = dir.substring( 1 );
        }

        try
        {
            SftpATTRS attrs = changeToRepositoryDirectory( dir, filename );
            if ( ( attrs.getPermissions() & S_IFDIR ) == 0 )
            {
                throw new TransferFailedException( "Remote path is not a directory:" + dir );
            }

            @SuppressWarnings( "unchecked" )
            List<ChannelSftp.LsEntry> fileList = channel.ls( filename );
            List<String> files = new ArrayList<String>( fileList.size() );
            for ( ChannelSftp.LsEntry entry : fileList )
            {
                String name = entry.getFilename();
                if ( entry.getAttrs().isDir() )
                {
                    if ( !name.equals( "." ) && !name.equals( ".." ) )
                    {
                        if ( !name.endsWith( "/" ) )
                        {
                            name += "/";
                        }
                        files.add( name );
                    }
                }
                else
                {
                    files.add( name );
                }
            }
            return files;
        }
        catch ( SftpException e )
        {
            String msg =
                "Error occurred while listing '" + destinationDirectory + "' " + "on remote repository: "
                    + getRepository().getUrl() + ": " + e.getMessage();

            throw new TransferFailedException( msg, e );
        }
    }