Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSH2 Python如何识别文件何时为目录_Python_Ssh2 - Fatal编程技术网

SSH2 Python如何识别文件何时为目录

SSH2 Python如何识别文件何时为目录,python,ssh2,Python,Ssh2,我正在将我的python程序从paramiko转换为ssh2。我已经成功地进行了身份验证,我可以得到一个目录列表。我被卡住的地方是当我处理目录列表时,我如何识别“文件”是目录还是文件。我看到了属性,但我只能看到atime是我想要使用的东西(以了解文件有多旧)。一旦我完成了opendir和readdir(以及文件列表),我如何识别它们是文件还是目录 当我执行readdir时,返回: 文件名长度 文件名 属性 时间 文件大小 旗帜 基德 时间 权限 液体 我自己没有用过,但我想检查一下标志的内

我正在将我的python程序从paramiko转换为ssh2。我已经成功地进行了身份验证,我可以得到一个目录列表。我被卡住的地方是当我处理目录列表时,我如何识别“文件”是目录还是文件。我看到了属性,但我只能看到atime是我想要使用的东西(以了解文件有多旧)。一旦我完成了opendir和readdir(以及文件列表),我如何识别它们是文件还是目录

当我执行readdir时,返回:

  • 文件名长度
  • 文件名
  • 属性
    • 时间
    • 文件大小
    • 旗帜
    • 基德
    • 时间
    • 权限
    • 液体
    • 我自己没有用过,但我想检查一下
      标志的内容。根据(由@NullPointerException建议的)可能的值为:

      LIBSSH2_SFTP_S_IFMT 文件掩码的类型

      LIBSSH2_SFTP_S_iffo 命名管道(fifo)

      LIBSSH2_SFTP_S_IFCHR 特殊字符(字符设备)

      LIBSSH2_SFTP_S_IFDIR 目录

      LIBSSH2_SFTP_S_IFBLK 块专用(块设备)

      LIBSSH2_SFTP_S_IFREG 常规文件

      LIBSSH2\u SFTP\u S\u iFlk 符号链接

      LIBSSH2_SFTP_S_IFSOCK 插座

      我想说,
      flags
      是一个位字段,您必须使用位运算符检查某个标志是否“打开”,例如,要检查它是一个目录:

      flags & LIBSSH2_SFTP_S_IFDIR == LIBSSH2_SFTP_S_IFDIR
      

      显然,它在ssh2python中被称为
      LIBSSH2\u SFTP\u s\u IFDIR
      :我确实找到了对它们的引用,但我似乎不知道如何转换flags属性(例如15)为了弄清楚我需要什么。我有上面的代码,但它没有识别出条目是一个目录loc1是一个元组,由以下内容组成:
      来自ssh2.sftp导入LIBSSH2\u sftp\u S\u IFDIR来自ssh2.session导入session if loc1[2]。flags&LIBSSH2\u sftp\u IFDIR==LIBSSH2\u sftp\u S\u IFDIR:continue
      0={int}7 1={str}.config'2={SFTPAttributes}atime={long}filesize={long}4096 flags={long}15 gid={long}mtime={long}权限={long}uid={long}
      很抱歉格式设置不好-我尝试过,但似乎无法将其清晰地格式化。我自己没有使用ssh2,所以我只是在猜测。为什么不更新您的问题,添加您正在使用的代码?