2

当我们使用方法时,我们如何获得文件完整路径作为响应sftp.dir.entries

我想要一个目录的文件内容(递归)。我已经使用sftp.dir.entries方法列出了存在的文件。我应该如何获取内容?

4

1 回答 1

2

也许您正在寻找glob 方法

作为 ::Dir.glob 工作,匹配(可能递归地)path反对下的所有目录条目pattern。如果给出了一个块,则在找到匹配块时将产生匹配;否则,当方法完成时,它们将在数组中返回。

因为在 SFTP 连接上工作总是比纯粹在本地工作要慢,所以不要指望这种方法能以与 ::Dir.glob 相同的速度执行;它最适用于目录相对较少的浅目录层次结构,尽管它应该能够处理每个目录中适度数量的文件。

因此,例如(也取自文档):

sftp.dir.glob("/remote/path", "**/*.rb")

应该返回远程计算机上任何目录级别中的所有 *.rb 文件。要获取所有文件,请"**/*"改用。另请参见Dir 类的 glob 方法

于 2017-06-21T07:04:05.680 回答