### Eclipse Workspace Patch 1.0 #P org.eclipse.rse.services.files.ftp Index: src/org/eclipse/rse/internal/services/files/ftp/FTPHostFile.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPHostFile.java,v retrieving revision 1.3 diff -u -r1.3 FTPHostFile.java --- src/org/eclipse/rse/internal/services/files/ftp/FTPHostFile.java 25 Apr 2007 12:57:28 -0000 1.3 +++ src/org/eclipse/rse/internal/services/files/ftp/FTPHostFile.java 26 Jul 2007 11:43:48 -0000 @@ -34,6 +34,7 @@ private String _name; private String _parentPath; private boolean _isDirectory; + private boolean _isLink; private boolean _isArchive; private long _lastModified; private long _size; @@ -65,6 +66,7 @@ _name = ftpFile.getName(); _isDirectory = ftpFile.isDirectory(); + _isLink = ftpFile.isSymbolicLink(); _lastModified = ftpFile.getTimestamp().getTimeInMillis(); _size = ftpFile.getSize(); _isArchive = internalIsArchive(); @@ -92,6 +94,11 @@ return !(_isDirectory || _isRoot); } + public boolean isSymbolicLink() + { + return _isLink; + } + public String getName() { return _name; @@ -234,4 +241,9 @@ && !ArchiveHandlerManager.isVirtual(getAbsolutePath()); } + public void setIsDirectory(boolean isDirectory) + { + _isDirectory = isDirectory; + } + } \ No newline at end of file Index: src/org/eclipse/rse/internal/services/files/ftp/FTPService.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java,v retrieving revision 1.26 diff -u -r1.26 FTPService.java --- src/org/eclipse/rse/internal/services/files/ftp/FTPService.java 25 Jul 2007 17:44:51 -0000 1.26 +++ src/org/eclipse/rse/internal/services/files/ftp/FTPService.java 26 Jul 2007 11:43:48 -0000 @@ -509,6 +509,22 @@ _ftpLoggingOutputStream.write(rawListLine.getBytes()); FTPHostFile f = new FTPHostFile(parentPath, _ftpFiles[i]); + + if(f.isSymbolicLink()) + { + //attempt to access the destination folder, if success then it's a folder + //otherwise leave it as a file (default), the operation is not shown in the console + _ftpClient.registerSpyStream(null); + if(_ftpClient.changeWorkingDirectory(f.getAbsolutePath())) + { + //success, revert working directory + _ftpClient.changeWorkingDirectory(parentPath); + //modify FTPHostFile to be shown as a folder + f.setIsDirectory(true); + } + _ftpClient.registerSpyStream(_ftpLoggingOutputStream); + } + if (isRightType(fileType,f)) { String name = f.getName(); if (name.equals(".") || name.equals("..")) { //$NON-NLS-1$ //$NON-NLS-2$