0

使用pysftp时如何获取远程文件夹的大小?

stat 返回的对象似乎不正确,我的代码:

fdStat = sftpClient.stat(remotePath);
print(fdStat.st_size);

输出:

drwxr-xr-x   1 0        99           4096 21 Sep 11:13 ?
4096

=> 文件夹remotePath很大,比 4096 大得多。

4

2 回答 2

1

该方法返回与 *nix命令.stat相同的信息。ls这里的大小代表数据的大小,即目录本身(=有关包含文件的元数据)在磁盘上占用的大小。这不是包含文件的大小。

通常,没有直接的方法可以使用 pysftp 或 SFTP 协议中的单个调用来获取目录中文件的总大小。

您所能做的就是列出目录(如果需要,递归)并汇总各个文件的大小。

于 2015-09-21T07:48:57.260 回答
0

我通过调用execute()来解决,然后为linux服务器处理返回值:

sftpClient.execute("du --apparent-size --block-size=1 " + remotePath)

于 2015-09-22T16:57:14.313 回答