I'm using FtpLib (Python) to download a folder with files from an ftp server. But I want to know the size of the folder before I start downloading it.
In the documentation I found FTP.size(filename)
but that's just for files and not for folders... I could loop through all the files in the folder but it is possible that the folder contains subfolders.
So does anyone know how to get the size of the folder using FtpLib?
Frederik Voordeckers' solution didn't work for me. When the method is called recursively, when dealing with a structure of subfolders, it raises the error
550 directory/.../sub_directory: No such file or directory
.I did modify his original code, by deleting the "self-declarations", since I did not use the method inside a class. This might have caused the error. I don't know.
Here is my solution:
Should work like a charm for everyone.
After some trial and error I found the solution.
It's based on Alex Thorntons solution but I kept in mind that there could be subfolders. When it's a folder, the
ftp.cwd()
command succeeds and the function is called recursively.When the
ftp.cwd()
command throws an error, it was a file and we can get the file size. The type is set to "I" (images), this forces binary mode since theftp.size()
command is not allowed in ASCII mode.