Upload only new/updated files using SFTP - WeOnlyDo Discussion board

Upload only new/updated files using SFTP (General questions)

by Davefyfe, Monday, January 19, 2009, 13:59 (5786 days ago)

Using SFTP (non .NET SFTP) what code would be required in VB/VB.NET to compare source and destination files and upload (PutFiles) only new and updated files.

Re: Upload only new/updated files using SFTP

by wodDamir, Monday, January 19, 2009, 14:16 (5786 days ago) @ Davefyfe

Hi Dave,

wodSFTP doesn't compare on it's own, so this is something that you will have to implement. I would suggest that you try using GetAttributes method, along with Attributes event, to check properties (such as Date and size) of remote file and only call Putfile for file that satisfies your condition.

Also, when doing multiple file uploads, you can use ListAttributes method and AttributesData event instead, since ListAttributes will list properties for each file found in specified directory. You can then compare local and remote file, and create a list of files that need to be uploaded.

Hope this helps.

Regards,
Damba

Upload only new or updated files using putfiles

by Brad Jensen, Thursday, September 15, 2011, 01:40 (4818 days ago) @ wodDamir

I've looked for sample code on your site to do this, which I think would be a common thing. I want to use putfiles to upoload a set of directories and contents, doing the same thing each day.

Obviously I only want to upload the item if it is new or the file date/time has changed.

Can I use putfiles to do this, then within the loopitem event do a getattributes on the remote (server) file so I can compare it to the file I think I want to upload? Or will doing the getattributes break the putfiles process - causing it to stop after the frist file?

If this method won't work, does anyone have an example of iterating thru directories on the local server, then uploading only the new or changed files to the ftp server, preserving the directory structure?

Re: Upload only new or updated files using putfile

by woddrazen, Thursday, September 15, 2011, 08:40 (4818 days ago) @ Brad Jensen

Brad,


You need to compare first file date/time and then upload new one to server. In order to receive date/time of file tha tis on server, you can use GetAttributes Method or you can receive it inside DirItems collection.

More help for DirItems collection you can find here:
http://www.weonlydo.com/FtpDLX/Help/wodFtpDLX-DirItem.html

After you compare files, you can upload only new one using PutFile Method.


Drazen