lgoldstein commented on a change in pull request #207:
URL: https://github.com/apache/mina-sshd/pull/207#discussion_r739855590



##########
File path: docs/sftp.md
##########
@@ -532,7 +530,27 @@ if (directoryPath instanceof SftpPath) {
   // Not an SFTP path -- get the directory listing in whatever other way is 
appropriate.
 }
 ```
-So even if an `SftpFileSystem` fulfills the general contract of a 
`FileSystem`, a client still has to be aware that
+Alternatively, one can also use the fact that Apache MINA sshd caches the SFTP 
file attributes on the `SftpPath` objects it
+returns from a `DirectoryStream`:
+
+```java
+public void processSftpDirectory(SftpPath directoryPath, BiConsumer<Path, 
SftpClient.Attributes> process) throws IOException {
+  try (DirectoryStream<Path> dir = Files.newDirectoryStream(directoryPath)) {
+    for (Path path : dir) {
+      if (path instanceof SftpPath) {
+        SftpClient.Attributes attributes = ((SftpPath) path).getAttributes();
+        process.accept(path, attributes);
+      } else {
+        // A DirectoryStream on a directory given by an SftpPath always 
returns SftpPath instances as elements.
+        throw new IllegalStateException();

Review comment:
       Let's add a message to exception along the lines of "Iterated directory 
entry=" + path + " is not an SftpPath as expected"




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to