Sample code for 30+ languages & platforms
Java

SFTP Get/Set File Permission

See more SFTP Examples

Demonstrates how to set the permissions of a file on the SFTP server.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.SFtp;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        SFtp sftp = new SFtp();

        // Connect to the SSH/SFTP server.
        String hostname = "sftp.example.com";
        int port = 22;
        try {
            sftp.connect(hostname, port);

            // Authenticate with the SSH server.  Chilkat SFTP supports
            // both password-based authenication as well as public-key
            // authentication.  This example uses password authenication.
            sftp.authenticatePw("myLogin", "myPassword");

            // After authenticating, the SFTP subsystem must be initialized:
            sftp.initializeSftp();
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Get the file permissions for the "hamlet.xml" file on the server.
        // The hamlet.xml file is located in the qa_data directory found under the HOME directory of the SSH user account.
        // We are passing the remote file path (we are not passing a file handle returned by a previous call to OpenFile).
        boolean isHandle = false;
        boolean followLinks = true;
        int permVal = sftp.getFilePermissions("qa_data/hamlet.xml", followLinks, isHandle);
        if (permVal < 0) {
            System.out.println(sftp.getLastErrorText());
            return;
        }

        // Note: Filesystem permissions on Linux/Unix/MacOSX are typically written in octal (POSIX file permissions).  For example 0644 is octal.
        // To convert to decimal: octal 644 = 6*8^2 + 4*8 + 4 = 420 (decimal)
        //
        // The server may return a permissions value (in octal) such as 100644.
        // The "100" indicates the file type, such as regular file or directory.

        // Show the decimal value of the permissions
        System.out.println("decimal permissions value: " + permVal);

        // To set the file permissions, pass the integer value.
        // Let's change the permissions to 0664, which is 6*8^2 + 6*8 + 4 = 436 (decimal)
        try {
            sftp.setPermissions("qa_data/hamlet.xml", isHandle, 436);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println("Success.");
    }
}