Since Windows 2000 your favorite OS have had a service called Background Intelligent Transfer Service or BITS in short.
It is used by Windows Update to download the update packages in the background using idle bandwidth. It supports retries, resuming after reboots and lots of other cool stuff. It can be controlled by a COM interface, and I always wondered why so few applications uses it.
I regularly need to move some large files from one computer to another. The destination computer is not always on, and SMB file transfer is really not very suited for large files – not on my unreliable WLAN anyway.
So I wrote a small utility called BITSync that can compare two file system directories and add the the files missing in the destination folder to a BITS download job. It also has a simple status dialog to monitor progress and control BITS jobs.
The application is written in Visual C++ 2008 Express edition. Should you have a look at the included source code, you will surely find that this is not my preferred programming language. So I’m sure there is a million ways to improve the application – and feel free to do so. But please send me a copy.
[Download]
Updated 2008-02-27: When I wrote this tool, I didn’t realize Vista comes with a robust file copying tool. XCOPY is now deprecated!
10 Comments
Hi Mads, this tool sounds really nice but the executable won’t do anything besides an error message, which is translated “the specified program cannot be executed”.
I’ve got no Visual Studio installed, so could you maybe compile once again? Will you continue development of this tool?
Best regards, Lars
Hi Lars,
I guess you need to install the runtime libraries. It should run with .NET Framework 2.0 (though it’s developed in VC2008). I’m not sure, but you also might need Microsoft Visual C++ 2008 Redistributable Package (google it).
I will not continue development myself but the general idea and the source is there for anyone to improve.
BR, Mads
Hi Lars, this looks really useful, but the download link is broken
where can I find a copy please? Mark
When I said Lars, or course I meant to say Mads. Sorry!
Mark, that’s all right. The web host has been down for a few days
It should be up and running within anytime soon.
Arrrgh, the Bitsync.zip file isn’t there!
Fredrik, the web host didn’t manage to restore my site within a week, so I just moved my site to another host.
The file is up again now
Thanks for this Mads
Very much appreciated.
For anyone else who’s trying to run this on Windows Server 2008 x64, (or presumably any 64-bit version of Windows), you need the x86 version of the Visual C++ 2008 redistributable package – not the x64 one.
It worked for me with the original version (v9.0.21022) or with SP1 (v9.0.30729.17).
HI
Well, idea is very good, but the application has bug – i can reproduce it anytime. If I need to syncronize source d:\xx and target g:\yy , application crashes or creates files in g:\yy with 0 size and strange names…..
I love this tools, it’s great, work fine. Not eseutil, not xcopy /j, not robocopy /ipg
I’m using with a lot of w2003 machines and very large files (>100gb).
Excelent job, thanks Mads.
When new version?
DD
2 Trackbacks
[...] RoboCopy (I have used it in the past to synchronise folders across the network) but, for me, Mads Klinkby’s BITSync looks perfect – unfortunately the download link was unavailable at the time of writing this post. [...]
[...] I also like the idea of using BITS for scheduled transfers, together with Mads Klinkby’s BITSync tool. [...]