如何确定SFTP文件是否是Node.js中的目录?
ssh2
库的SFTP readdir
方法让我返回远程目录中的所有文件。如何判断它们中的任何一个是否为目录?
这是来自库的一些示例输出:
{ filename:
'myfile',
longname:
'-rwxr-x--- 1 myuser mygroup 19036227 Nov 21 11:05 myfile',
attrs:
Stats {
mode: 33256,
permissions: 33256,
uid: 603,
gid: 1014,
size: 19036227,
atime: 1542859216,
mtime: 1542816340 } }
回答如下:
文件的mode
包含一个指示它是否是目录的位。你可以这样检查:
const fs = require('fs');
function isDir(mode) {
return (mode & fs.constants.S_IFDIR) === fs.constants.S_IFDIR;
}
isDir(myfile.attrs.mode);