diff --git a/qqq-backend-module-filesystem/src/main/java/com/kingsrook/qqq/backend/module/filesystem/sftp/actions/AbstractSFTPAction.java b/qqq-backend-module-filesystem/src/main/java/com/kingsrook/qqq/backend/module/filesystem/sftp/actions/AbstractSFTPAction.java index f98582e8..93a5adaf 100644 --- a/qqq-backend-module-filesystem/src/main/java/com/kingsrook/qqq/backend/module/filesystem/sftp/actions/AbstractSFTPAction.java +++ b/qqq-backend-module-filesystem/src/main/java/com/kingsrook/qqq/backend/module/filesystem/sftp/actions/AbstractSFTPAction.java @@ -310,6 +310,16 @@ public class AbstractSFTPAction extends AbstractBaseFilesystemAction rs = new ArrayList<>(); + ///////////////////////////////////////////////////////////////////////////////////// + // at least in some cases, listing / seems to be interpreted by the server as // + // a listing from the root of the system, not just the user's dir. so, converting // + // paths starting with / to instead be ./ is giving us better results. // + ///////////////////////////////////////////////////////////////////////////////////// + if(fullPath.startsWith("/")) + { + fullPath = "." + fullPath; + } + for(SftpClient.DirEntry dirEntry : sftpClient.readDir(fullPath)) { if(".".equals(dirEntry.getFilename()) || "..".equals(dirEntry.getFilename()))