diff --git a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java index 90902fa2433..e5cd3742bf1 100644 --- a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java +++ b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java @@ -45,6 +45,7 @@ * Javier Montalvo Orus (Symbian) - [187862] Incorrect Error Message when creating new file in read-only directory * Javier Montalvo Orus (Symbian) - [194204] Renaming Files/Folders moves them sometimes * Javier Montalvo Orus (Symbian) - [192724] New Filter with Show Files Only still shows folders + * Martin Oberhuber (Wind River) - [192724] Fixed logic to filter folders if FILE_TYPE_FOLDERS ********************************************************************************/ package org.eclipse.rse.internal.services.files.ftp; @@ -497,26 +498,17 @@ public class FTPService extends AbstractFileService implements IFileService, IFT for(int i=0; i<_ftpFiles.length; i++) { FTPHostFile f = new FTPHostFile(parentPath, _ftpFiles[i]); - - if((filematcher.matches(f.getName()) || f.isDirectory()) && !(f.getName().equals(".") || f.getName().equals(".."))) //$NON-NLS-1$ //$NON-NLS-2$ - { - switch(fileType) - { - case FILE_TYPE_FOLDERS: - if(f.isDirectory()) - { - results.add(f); - } - break; - case FILE_TYPE_FILES: - if(f.isFile()) - { - results.add(f); - } - break; - case FILE_TYPE_FILES_AND_FOLDERS: - results.add(f); - break; + if (isRightType(fileType,f)) { + String name = f.getName(); + if (name.equals(".") || name.equals("..")) { //$NON-NLS-1$ //$NON-NLS-2$ + //Never return the default directory names + continue; + } else if (f.isDirectory() && fileType!=FILE_TYPE_FOLDERS) { + //get ALL directory names (unless looking for folders only) + results.add(f); + } else if (filematcher.matches(name)) { + //filter all others by name. + results.add(f); } } } diff --git a/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java b/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java index 901e9907f09..b1497b478ee 100644 --- a/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java +++ b/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java @@ -10,6 +10,7 @@ * Dave Dykstal (IBM) - fixing bug 162510: correctly process filter strings * Kushal Munir (IBM) - for API bug * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API + * Martin Oberhuber (Wind River) - [192724] Fixed logic to filter folders if FILE_TYPE_FOLDERS *******************************************************************************/ package org.eclipse.rse.internal.services.ssh.files; @@ -307,7 +308,8 @@ public class SftpFileService extends AbstractFileService implements IFileService //don't show the trivial names continue; } - if (filematcher.matches(fileName) || lsEntry.getAttrs().isDir()) { + if (filematcher.matches(fileName) || (lsEntry.getAttrs().isDir() && fileType!=FILE_TYPE_FOLDERS)) { + //get ALL directory names (unless looking for folders only) SftpHostFile node = makeHostFile(parentPath, fileName, lsEntry.getAttrs()); if (isRightType(fileType, node)) { results.add(node);