You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ssh2-sftp-client list方法过滤使用报错,寻求技术指导

ssh2-sftp-client list方法过滤功能的正确用法

你的报错原因是list方法的过滤回调参数不是文件名字符串,而是包含文件详情的对象,直接对参数调用includes会报错(对象没有这个方法)。

ssh2-sftp-client的list方法第二个参数的回调函数,接收的是每个文件/目录的信息对象,常见属性包括:

  • name: 文件名/目录名(字符串)
  • type: 文件类型('-'代表普通文件,'d'代表目录,'l'代表软链接等)
  • size: 文件大小(数字)
  • modifyTime: 修改时间(时间戳)

修正后的过滤代码需要访问对象的name属性再进行判断:

let data = await sftp.list(
  'engine/',
  (item) => !item.name.includes('READ')
);

如果需要只过滤普通文件(排除目录),可以同时判断文件类型:

let data = await sftp.list(
  'engine/',
  (item) => item.type === '-' && !item.name.includes('READ')
);

如果你的运行环境不支持字符串includes方法(比如旧版Node.js),可以用indexOf替代:

// 效果等同于 !item.name.includes('READ')
let data = await sftp.list(
  'engine/',
  (item) => item.name.indexOf('READ') === -1
);

内容的提问来源于stack exchange,提问作者Kita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:00:55