protected SftpFileAttributes ReadAttributes() { #if TUNING return(SftpFileAttributes.FromBytes(DataStream)); #else var flag = ReadUInt32(); long size = -1; var userId = -1; var groupId = -1; uint permissions = 0; var accessTime = DateTime.MinValue; var modifyTime = DateTime.MinValue; IDictionary <string, string> extensions = null; if ((flag & 0x00000001) == 0x00000001) // SSH_FILEXFER_ATTR_SIZE { size = (long)ReadUInt64(); } if ((flag & 0x00000002) == 0x00000002) // SSH_FILEXFER_ATTR_UIDGID { userId = (int)ReadUInt32(); groupId = (int)ReadUInt32(); } if ((flag & 0x00000004) == 0x00000004) // SSH_FILEXFER_ATTR_PERMISSIONS { permissions = ReadUInt32(); } if ((flag & 0x00000008) == 0x00000008) // SSH_FILEXFER_ATTR_ACMODTIME { var time = ReadUInt32(); accessTime = DateTime.FromFileTime((time + 11644473600) * 10000000); time = ReadUInt32(); modifyTime = DateTime.FromFileTime((time + 11644473600) * 10000000); } if ((flag & 0x80000000) == 0x80000000) // SSH_FILEXFER_ATTR_ACMODTIME { var extendedCount = ReadUInt32(); extensions = ReadExtensionPair(); } var attributes = new SftpFileAttributes(accessTime, modifyTime, size, userId, groupId, permissions, extensions); return(attributes); #endif }
protected SftpFileAttributes ReadAttributes() { return(SftpFileAttributes.FromBytes(DataStream)); }