MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / GetFileNode

Method GetFileNode

Plugins/FileTransfer/ChannelSFTP.cpp:101–140  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

99}
100
101QSharedPointer<CRemoteFileSystem> CChannelSFTP::GetFileNode(
102 const QString& szPath, sftp_attributes attributes)
103{
104 if(!attributes) return nullptr;
105 /*
106 qDebug(log) << szPath << "name:" << attributes->name
107 << "size:" << attributes->size << "type:" << attributes->type;//*/
108 QString szName = QString::fromUtf8(attributes->name);
109 if("." == szName || ".." == szName)
110 return nullptr;
111 CRemoteFileSystem::TYPE type = CRemoteFileSystem::TYPE::NO;
112 switch(attributes->type) {
113 case SSH_FILEXFER_TYPE_DIRECTORY:
114 type = CRemoteFileSystem::TYPE::DIR;
115 break;
116 case SSH_FILEXFER_TYPE_SYMLINK:
117 type = CRemoteFileSystem::TYPE::SYMLINK;
118 break;
119 case SSH_FILEXFER_TYPE_REGULAR:
120 type = CRemoteFileSystem::TYPE::FILE;
121 break;
122 case SSH_FILEXFER_TYPE_SPECIAL:
123 type = CRemoteFileSystem::TYPE::SPECIAL;
124 break;
125 default:
126 qWarning(log) << "Unsupported type:" << attributes->type;
127 return nullptr;
128 break;
129 }
130 if(szPath.right(1) == '/')
131 szName = szPath + szName;
132 else
133 szName = szPath + "/" + szName;
134 QSharedPointer<CRemoteFileSystem> p(new CRemoteFileSystem(szName, type));
135 p->SetSize(attributes->size);
136 p->SetPermissions((QFileDevice::Permissions)attributes->permissions);
137 p->SetLastModified(QDateTime::fromSecsSinceEpoch(attributes->mtime));
138 p->SetCreateTime(QDateTime::fromSecsSinceEpoch(attributes->createtime));
139 return p;
140}
141
142int CChannelSFTP::GetDir(CRemoteFileSystem* p)
143{

Callers

nothing calls this directly

Calls 4

SetPermissionsMethod · 0.80
SetLastModifiedMethod · 0.80
SetSizeMethod · 0.45
SetCreateTimeMethod · 0.45

Tested by

no test coverage detected