我正在尝试使用npm模块ssh2-sftp-client从Node.js的顶级文件夹中列出SFTP服务器中的所有文件。但是,我找不到任何讨论是否可以在文件路径中使用通配符的文档或以前的文章。文件路径如下所示:
../mnt/volume_lon1_01/currency/curve/date/filename.csv
可能有许多不同的货币,曲线和日期-实际上有数百种-我需要一种仅在文件结构的最终级别列出每个文件名的方法。
我认为明智的做法是使用通配符:
../mnt/volume_lon1_01/ * / * / * / *.csv
但是,这似乎不起作用,我找不到任何暗示。谁能建议最好的方法来列出Node.js中SFTP的每个文件?
非常感谢,
乔治
答案 0 :(得分:1)
嗯,我认为这在ssh2中是不可能的,但是您可以做的是按算法列出它们并访问每个伪代码:
Connect SFTP
List Folders -> Save this to a dictionary
For each folder in Folders
List Folders - > Save this to a dictionary
在它的结尾,您将拥有一个包含远程服务器完整路径的字典对象,就像这样
{
sftp: {
"subfolders": {
"0": {
"name": "/rootfolder",
"subfolders": {
"0": {
"name": "/rootfolder",
"subfolders": {
...
}
}
}
}
}
}
}
通过此操作,您可以轻松访问所需的任何内容
sftp["/rootfolder"]["/subfolder1"]... etc