Class SftpClient


  • public class SftpClient
    extends java.lang.Object

    Implements a Secure File Transfer (SFTP) client.

    Since:
    0.2.0
    Version:
    $Revision: 1.44 $
    Author:
    Lee David Painter
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addEventListener​(ChannelEventListener eventListener)  
      void cd​(java.lang.String dir)
      Changes the working directory on the remote server.
      void chgrp​(int gid, java.lang.String path)
      Sets the group ID for the file or directory.
      void chmod​(int permissions, java.lang.String path)
      Changes the access permissions or modes of the specified file or directory.
      void chown​(int uid, java.lang.String path)
      Sets the user ID to owner for the file or directory.
      DirectoryOperation copyLocalDirectory​(java.lang.String localdir, java.lang.String remotedir, boolean recurse, boolean sync, boolean commit, FileTransferProgress progress)  
      DirectoryOperation copyRemoteDirectory​(java.lang.String remotedir, java.lang.String localdir, boolean recurse, boolean sync, boolean commit, FileTransferProgress progress)  
      FileAttributes get​(java.lang.String path)  
      FileAttributes get​(java.lang.String path, FileTransferProgress progress)
      Download the remote file to the local computer.
      FileAttributes get​(java.lang.String remote, java.io.OutputStream local)  
      FileAttributes get​(java.lang.String remote, java.io.OutputStream local, FileTransferProgress progress)
      Download the remote file writing it to the specified OutputStream.
      FileAttributes get​(java.lang.String remote, java.lang.String local)  
      FileAttributes get​(java.lang.String remote, java.lang.String local, FileTransferProgress progress)
      Download the remote file to the local computer.
      java.lang.String getAbsolutePath​(java.lang.String path)  
      boolean isClosed()
      Returns the state of the SFTP client.
      void lcd​(java.lang.String path)
      Changes the local working directory.
      java.lang.String lpwd()
      Returns the absolute path to the local working directory.
      java.util.List ls()
      List the contents of the current remote working directory.
      java.util.List ls​(java.lang.String path)
      List the contents remote directory.
      void mkdir​(java.lang.String dir)
      Creates a new directory on the remote server.
      void mkdirs​(java.lang.String dir)
      Create a directory or set of directories.
      void put​(java.io.InputStream in, java.lang.String remote)  
      void put​(java.io.InputStream in, java.lang.String remote, FileTransferProgress progress)
      Upload a file to the remote computer reading from the specified InputStream.
      void put​(java.lang.String local)  
      void put​(java.lang.String local, FileTransferProgress progress)
      Upload a file to the remote computer.
      void put​(java.lang.String local, java.lang.String remote)  
      void put​(java.lang.String local, java.lang.String remote, FileTransferProgress progress)
      Upload a file to the remote computer.
      java.lang.String pwd()
      Returns the absolute path name of the current remote working directory.
      void quit()
      Close the SFTP client.
      void rename​(java.lang.String oldpath, java.lang.String newpath)
      Rename a file on the remote computer.
      void rm​(java.lang.String path)
      Remove a file or directory from the remote computer.
      void rm​(java.lang.String path, boolean force, boolean recurse)  
      FileAttributes stat​(java.lang.String path)
      Returns the attributes of the file from the remote computer.
      void symlink​(java.lang.String path, java.lang.String link)
      Create a symbolic link on the remote computer.
      int umask​(int umask)
      Sets the umask used by this client.
      void umask​(java.lang.String umask)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • umask

        public int umask​(int umask)
        Sets the umask used by this client.
        Parameters:
        umask -
        Returns:
        the previous umask value
      • cd

        public void cd​(java.lang.String dir)
                throws java.io.IOException

        Changes the working directory on the remote server.

        Parameters:
        dir - the new working directory
        Throws:
        java.io.IOException - if an IO error occurs or the file does not exist
        java.io.FileNotFoundException
        Since:
        0.2.0
      • mkdir

        public void mkdir​(java.lang.String dir)
                   throws java.io.IOException

        Creates a new directory on the remote server. This method will throw an exception if the directory already exists. To create directories and disregard any errors use the mkdirs method.

        Parameters:
        dir - the name of the new directory
        Throws:
        java.io.IOException - if an IO error occurs or if the directory already exists
        Since:
        0.2.0
      • mkdirs

        public void mkdirs​(java.lang.String dir)

        Create a directory or set of directories. This method will not fail even if the directories exist. It is advisable to test whether the directory exists before attempting an operation by using the stat method to return the directories attributes.

        Parameters:
        dir - the path of directories to create.
      • pwd

        public java.lang.String pwd()

        Returns the absolute path name of the current remote working directory.

        Returns:
        the absolute path of the remote working directory.
        Since:
        0.2.0
      • ls

        public java.util.List ls()
                          throws java.io.IOException

        List the contents of the current remote working directory.

        Returns a list of SftpFile instances for the current working directory.

        Returns:
        a list of SftpFile for the current working directory
        Throws:
        java.io.IOException - if an IO error occurs
        Since:
        0.2.0
        See Also:
        SftpFile
      • ls

        public java.util.List ls​(java.lang.String path)
                          throws java.io.IOException

        List the contents remote directory.

        Returns a list of SftpFile instances for the remote directory.

        Parameters:
        path - the path on the remote server to list
        Returns:
        a list of SftpFile for the remote directory
        Throws:
        java.io.IOException - if an IO error occurs
        Since:
        0.2.0
        See Also:
        SftpFile
      • lcd

        public void lcd​(java.lang.String path)
                 throws java.io.IOException

        Changes the local working directory.

        Parameters:
        path - the path to the new working directory
        Throws:
        java.io.IOException - if an IO error occurs
        Since:
        0.2.0
      • lpwd

        public java.lang.String lpwd()

        Returns the absolute path to the local working directory.

        Returns:
        the absolute path of the local working directory.
        Since:
        0.2.0
      • get

        public FileAttributes get​(java.lang.String path)
                           throws java.io.IOException
        Parameters:
        path -
        Returns:
        Throws:
        java.io.IOException
      • get

        public FileAttributes get​(java.lang.String remote,
                                  java.lang.String local,
                                  FileTransferProgress progress)
                           throws java.io.IOException,
                                  TransferCancelledException

        Download the remote file to the local computer. If the paths provided are not absolute the current working directory is used.

        Parameters:
        remote - the path/name of the remote file
        local - the path/name to place the file on the local computer
        progress -
        Returns:
        Throws:
        java.io.IOException - if an IO error occurs or the file does not exist
        TransferCancelledException
        Since:
        0.2.0
      • get

        public FileAttributes get​(java.lang.String remote,
                                  java.lang.String local)
                           throws java.io.IOException
        Parameters:
        remote -
        local -
        Returns:
        Throws:
        java.io.IOException
      • get

        public FileAttributes get​(java.lang.String remote,
                                  java.io.OutputStream local,
                                  FileTransferProgress progress)
                           throws java.io.IOException,
                                  TransferCancelledException

        Download the remote file writing it to the specified OutputStream. The OutputStream is closed by this mehtod even if the operation fails.

        Parameters:
        remote - the path/name of the remote file
        local - the OutputStream to write
        progress -
        Returns:
        Throws:
        java.io.IOException - if an IO error occurs or the file does not exist
        TransferCancelledException
        Since:
        0.2.0
      • get

        public FileAttributes get​(java.lang.String remote,
                                  java.io.OutputStream local)
                           throws java.io.IOException
        Parameters:
        remote -
        local -
        Returns:
        Throws:
        java.io.IOException
      • isClosed

        public boolean isClosed()

        Returns the state of the SFTP client. The client is closed if the underlying session channel is closed. Invoking the quit method of this object will close the underlying session channel.

        Returns:
        true if the client is still connected, otherwise false
        Since:
        0.2.0
      • put

        public void put​(java.lang.String local)
                 throws java.io.IOException
        Parameters:
        local -
        Throws:
        java.io.IOException
      • put

        public void put​(java.lang.String local,
                        java.lang.String remote,
                        FileTransferProgress progress)
                 throws java.io.IOException,
                        TransferCancelledException

        Upload a file to the remote computer. If the paths provided are not absolute the current working directory is used.

        Parameters:
        local - the path/name of the local file
        remote - the path/name of the destination file
        progress -
        Throws:
        java.io.IOException - if an IO error occurs or the file does not exist
        TransferCancelledException
        Since:
        0.2.0
      • put

        public void put​(java.lang.String local,
                        java.lang.String remote)
                 throws java.io.IOException
        Parameters:
        local -
        remote -
        Throws:
        java.io.IOException
      • put

        public void put​(java.io.InputStream in,
                        java.lang.String remote,
                        FileTransferProgress progress)
                 throws java.io.IOException,
                        TransferCancelledException

        Upload a file to the remote computer reading from the specified InputStream. The InputStream is closed, even if the operation fails.

        Parameters:
        in - the InputStream being read
        remote - the path/name of the destination file
        progress -
        Throws:
        java.io.IOException - if an IO error occurs
        TransferCancelledException
        Since:
        0.2.0
      • put

        public void put​(java.io.InputStream in,
                        java.lang.String remote)
                 throws java.io.IOException
        Parameters:
        in -
        remote -
        Throws:
        java.io.IOException
      • chown

        public void chown​(int uid,
                          java.lang.String path)
                   throws java.io.IOException

        Sets the user ID to owner for the file or directory.

        Parameters:
        uid - numeric user id of the new owner
        path - the path to the remote file/directory
        Throws:
        java.io.IOException - if an IO error occurs or the file does not exist
        Since:
        0.2.0
      • chgrp

        public void chgrp​(int gid,
                          java.lang.String path)
                   throws java.io.IOException

        Sets the group ID for the file or directory.

        Parameters:
        gid - the numeric group id for the new group
        path - the path to the remote file/directory
        Throws:
        java.io.IOException - if an IO error occurs or the file does not exist
        Since:
        0.2.0
      • chmod

        public void chmod​(int permissions,
                          java.lang.String path)
                   throws java.io.IOException

        Changes the access permissions or modes of the specified file or directory.

        Modes determine who can read, change or execute a file.

        Absolute modes are octal numbers specifying the complete list of
         attributes for the files; you specify attributes by OR'ing together
         these bits.
        
         0400       Individual read
         0200       Individual write
         0100       Individual execute (or list directory)
         0040       Group read
         0020       Group write
         0010       Group execute
         0004       Other read
         0002       Other write
         0001       Other execute 
        Parameters:
        permissions - the absolute mode of the file/directory
        path - the path to the file/directory on the remote server
        Throws:
        java.io.IOException - if an IO error occurs or the file if not found
        Since:
        0.2.0
      • umask

        public void umask​(java.lang.String umask)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • rename

        public void rename​(java.lang.String oldpath,
                           java.lang.String newpath)
                    throws java.io.IOException

        Rename a file on the remote computer.

        Parameters:
        oldpath - the old path
        newpath - the new path
        Throws:
        java.io.IOException - if an IO error occurs
        Since:
        0.2.0
      • rm

        public void rm​(java.lang.String path)
                throws java.io.IOException

        Remove a file or directory from the remote computer.

        Parameters:
        path - the path of the remote file/directory
        Throws:
        java.io.IOException - if an IO error occurs
        Since:
        0.2.0
      • rm

        public void rm​(java.lang.String path,
                       boolean force,
                       boolean recurse)
                throws java.io.IOException
        Parameters:
        path -
        force -
        recurse -
        Throws:
        java.io.IOException
      • symlink

        public void symlink​(java.lang.String path,
                            java.lang.String link)
                     throws java.io.IOException

        Create a symbolic link on the remote computer.

        Parameters:
        path - the path to the existing file
        link - the new link
        Throws:
        java.io.IOException - if an IO error occurs or the operation is not supported on the remote platform
        Since:
        0.2.0
      • stat

        public FileAttributes stat​(java.lang.String path)
                            throws java.io.IOException

        Returns the attributes of the file from the remote computer.

        Parameters:
        path - the path of the file on the remote computer
        Returns:
        the attributes
        Throws:
        java.io.IOException - if an IO error occurs or the file does not exist
        Since:
        0.2.0
        See Also:
        FileAttributes
      • getAbsolutePath

        public java.lang.String getAbsolutePath​(java.lang.String path)
                                         throws java.io.IOException
        Parameters:
        path -
        Returns:
        Throws:
        java.io.IOException
      • quit

        public void quit()
                  throws java.io.IOException

        Close the SFTP client.

        Throws:
        java.io.IOException
        Since:
        0.2.0
      • copyLocalDirectory

        public DirectoryOperation copyLocalDirectory​(java.lang.String localdir,
                                                     java.lang.String remotedir,
                                                     boolean recurse,
                                                     boolean sync,
                                                     boolean commit,
                                                     FileTransferProgress progress)
                                              throws java.io.IOException
        Parameters:
        localdir -
        remotedir -
        recurse -
        sync -
        commit -
        progress -
        Returns:
        Throws:
        java.io.IOException
      • addEventListener

        public void addEventListener​(ChannelEventListener eventListener)
        Parameters:
        eventListener -
      • copyRemoteDirectory

        public DirectoryOperation copyRemoteDirectory​(java.lang.String remotedir,
                                                      java.lang.String localdir,
                                                      boolean recurse,
                                                      boolean sync,
                                                      boolean commit,
                                                      FileTransferProgress progress)
                                               throws java.io.IOException
        Parameters:
        remotedir -
        localdir -
        recurse -
        sync -
        commit -
        progress -
        Returns:
        Throws:
        java.io.IOException