2017-06-06 49 views
1

當我們使用方法sftp.dir.entries時,我們如何獲得文件完整路徑的響應?Ruby:Net :: SFTP獲取文件路徑

我想要一個目錄(遞歸)的文件內容。我已經使用sftp.dir.entries方法來列出存在的文件。我應該如何獲取內容?

+0

使用FTP,您應遞歸發出change directory命令以導航到目錄並列出其內容。這不可能一次完成。 – mudasobwa

回答

0

也許你正在尋找glob method

作品爲:: Dir.glob,匹配(可能遞歸)pathpattern下的所有目錄條目。如果給出了一個塊,匹配將被發現到該塊,因爲它們被發現;否則,它們將在方法結束時返回到數組中。

因爲在SFTP連接上工作總是比純粹在本地工作慢,所以不要指望這個方法的執行效率與Dir.glob的相同;它對於目錄相對較少的淺層目錄層次結構最適合,儘管它應該能夠在每個目錄中處理適量的文件。

所以,舉例來說(也從資料爲準):

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

應該返回所有的* .RB文件在任何目錄級別的遠程機器上。要獲得所有文件,請改爲使用"**/*"。另見Dir class' glob method