diff --git a/src/main/java/net/schmizz/sshj/sftp/PathHelper.java b/src/main/java/net/schmizz/sshj/sftp/PathHelper.java index de69cae7..447e4259 100644 --- a/src/main/java/net/schmizz/sshj/sftp/PathHelper.java +++ b/src/main/java/net/schmizz/sshj/sftp/PathHelper.java @@ -19,11 +19,16 @@ import java.io.IOException; public class PathHelper { + public static final String DEFAULT_SEPARATOR = "/"; + private final SFTPEngine engine; + private final String separator; + private String dotDir; - public PathHelper(SFTPEngine engine) { + public PathHelper(SFTPEngine engine, String separator) { this.engine = engine; + this.separator = separator; } public PathComponents getComponents(String path) @@ -31,7 +36,7 @@ public class PathHelper { if (path.isEmpty() || path.equals(".")) return getComponents(getDotDir()); - final int lastSlash = path.lastIndexOf("/"); + final int lastSlash = path.lastIndexOf(separator); if (lastSlash == -1) if (path.equals("..")) diff --git a/src/main/java/net/schmizz/sshj/sftp/SFTPClient.java b/src/main/java/net/schmizz/sshj/sftp/SFTPClient.java index b7f68775..65cbdde9 100644 --- a/src/main/java/net/schmizz/sshj/sftp/SFTPClient.java +++ b/src/main/java/net/schmizz/sshj/sftp/SFTPClient.java @@ -40,9 +40,13 @@ public class SFTPClient private final PathHelper pathHelper; public SFTPClient(SFTPEngine engine) { + this(engine, PathHelper.DEFAULT_SEPARATOR); + } + + public SFTPClient(SFTPEngine engine, String separator) { this.engine = engine; - this.pathHelper = new PathHelper(engine); - this.xfer = new SFTPFileTransfer(engine); + this.pathHelper = new PathHelper(engine, separator); + this.xfer = new SFTPFileTransfer(engine, pathHelper); } public SFTPEngine getSFTPEngine() { diff --git a/src/main/java/net/schmizz/sshj/sftp/SFTPFileTransfer.java b/src/main/java/net/schmizz/sshj/sftp/SFTPFileTransfer.java index 0d57aea1..e7ef7786 100644 --- a/src/main/java/net/schmizz/sshj/sftp/SFTPFileTransfer.java +++ b/src/main/java/net/schmizz/sshj/sftp/SFTPFileTransfer.java @@ -40,9 +40,15 @@ public class SFTPFileTransfer private volatile LocalFileFilter uploadFilter; private volatile RemoteResourceFilter downloadFilter; + public SFTPFileTransfer(SFTPEngine engine, PathHelper pathHelper) { + this.engine = engine; + this.pathHelper = pathHelper; + } + + @Deprecated public SFTPFileTransfer(SFTPEngine engine) { this.engine = engine; - this.pathHelper = new PathHelper(engine); + this.pathHelper = new PathHelper(engine, PathHelper.DEFAULT_SEPARATOR); } @Override