Description

click on an image to enlarge it

UpdateIt! is the application designed for the synchronization of the source folder's content with the content of other (target) folder on a local computer or (and) a remote FTP server. This is wizard that I wrote to fast and comfortable update of my own personal website. It searches (at request — recursively) all files in the source folder that are modified after specified date/time. It can copy found files (everyone or selected) to the target folder with preservation of an initial structure of the subfolders. This application allows to upload all files from the updated folder (with preservation of its structure) to the specified FTP server, to compress this folder in the same named zip-archive, to send one to the given E-mail.

click on an image to enlarge it

When you first run the application on your computer you will be asked to provide your e-mail and outgoing mail server to be used to send crash reports (in case of their occurrence). If you are not sure which outgoing SMTP server to specify look at your default E-mail client settings. Notice that the specified address will only be stored locally and never will be published or sent anywhere else. But if you still worry about a spam feel free to use some fake address such as “anonymous@unknown.org” and provide a real one in the error description typed by yourself.

click on an image to enlarge it

Step #1 is the selection of source and target folders. It is required to choose a name of the folder for searching the updated files and a name of the folder where these updated files will be copied or moved. Also, it is required to specify the date and time since which files in the source folder are considered updated. If Include subfolders option is set, the files searching will be carried out recursively — in the source folder and in all folders inside it. In the field Exclude mask(s) there is possibility to type one or several masks of files (separated from each other by commas) which should be excluded from search. To delete the content of the target folder as a preliminary one it is possible to set Cleanup this folder first option (if Delete files to Recycle Bin if possible option is set files will be removed to the Recycle Bin on conditions that its usage is enabled by system options). Setting Compare contents of the newer and existing older files option allows to exclude from results of search those files which binary contents do not differ from the existing copies in the target folder.

click on an image to enlarge it

Step #2 is reviewing the list of the updated files. On this step you can see the list of the updated files found in the source folder. The name, the extension, the relative path in the source folder, and also the date and time of the last modification are shown for each file. In order to remove file(s) from this list (and thereby to exclude them from the further processing) it is required to mark corresponding line(s) and to click the Remove from list button. Note that in this case files leave only the list, but still stay in the source folder.

click on an image to enlarge it

Step #3 is actions selection. On this step it is required to choose, what exactly should be done with the found files. Copying or moving files to the target folder are obligatory actions that are chosen by means of the group Action to perform switches. Besides this, it is possible to upload the target folder contents (with full structure preservation) to the specified folder on a FTP server. For this purpose set Also upload file(s) to the FTP server option and fill the fields of FTP Settings group, having specified the address and the port of a server, as well as the login and the password for the access. To compress a target folder in the same named zip-archive, set Also ZIP folder with the copied/moved file(s) option. This archive file can be sent as an attachment to the given E-mail address. For this, set Also send ZIPped folder via e-mail option and fill fields of Mail Settings group, having specified addresses of the sender and the recipient, and also the SMTP-server which will be used for sending the mail. Note that this feature is accessible only in the case when the key HKEY_CURRENT_USER\Software\Elijah Zarezky\UpdateIt!\SMTP in the system registry contains DWORD named Enable and its value is different from zero.

click on an image to enlarge it

Step #4 is processing the files. On this step it is possible to watch the progress of copying (or moving) the updated files from the source folder into the target folder, of uploading files from the target folder to the given FTP server, compression of the target folder and sending the given archive to the E-mail address that was specified earlier.

System requirements:

  • Windows 2000/XP/2003/Vista/7;
  • some free memory.

Plans for the future:

  • preservation of source and target folders' “history”
  • preservation of “history” of the sender's and the recipient 's of the mail addresses.

UpdateIt! Pro

This edition of the UpdateIt! has the following differences from the standard.

  • Beyond standard Deflate, BZip2 compression method is supported. It compresses files more efficiently than the Deflate algorithm, but is slower. It is supported by 7-Zip since version 4.5x, by PKZIP since version 4.6 and by WinZip since version 10.0. Earlier versions of these programs will not decompress archives that use the BZip2 algorithm.
  • AES encryption with key sizes 128-bit, 192-bit and 256-bit is supported for the produced archive files. The format of AES encrypted data conforms to the WinZip AES Encryption Specification. It is the preferred way to ensure that your data is secure. UpdateIt! Pro encrypts files the way the WinZip 11.0 does.
  • If the number of the files to compress exceeds 65 535 or size of an archive should be greater than 4 gigabytes then Zip64 format will be automatically used. The Zip64 format is an extension to the standard Zip format that practically removes limits in sizes and item numbers within a zip archive.
  • This application is distributed as a freeware but closed source due to the ZipArchive Library Commercial License Agreement.

Export/import of options

Since version 1.0.2598, in the application there is a feature of options export/import (only under Windows 2000/XP/2003) which can be useful at re-installation of the operating system. Corresponding commands are in the system menu of the main window. Note that the export of options is possible at any stage of work of the application, but the import of options is possible only on a “zero” step (on the Welcome! page).

Command-line switches

The first group of keys allows to set the name of a source folder and the condition of files search in it, as well as the name of a target folder and parameters of work with it.

SourceDir-Name:<folder_name>
Full name of the source folder in which search of the updated files should be done. If this name contains spaces it should be quoted; otherwise quotes' usage is acceptable, but isn’t obligatory.
SourceDir-Recurce:<0|1>
If the value of this key is equal to 1, the search of files is carried out recursively (in the source folder and all folders inside it), and if the value is equal to 0, search is carried out only in the source folder. Any other value will be interpreted as 1.
SourceDir-Exclude:<masks_list>
One or several masks of files (separated from each other by commas) which should be excluded from search.
TargetDir-Name:<folder_name>
Full name of the target folder where the updated files should be copied or moved. If this name contains spaces it should be quoted; otherwise quotes' usage is acceptable, but isn’t obligatory.
TargetDir-CleanupFirst:<0|1>
If the value of this key is equal to 1, target folder will be completely cleared before the files begin being copied or moved to it, and will not if the value is equal to 0. Any other value will be interpreted as 1.
UseRecycleBin:<0|1>
If the value of this key is equal to 1, files from the target folder will be removed to the Recycle Bin (if its usage is enabled by system options), and if the value is equal to 0 files will be removed permanently. Any other value will be interpreted as 1.
SourceDir-WriteTime:<date_time>
This is the date and time of files' modification in the source folder after which they are considered updated.
CompareContents:<0|1>
If the value of this key is equal to 1 and if the copy of the updated file from the source folder is available in the target folder, copying or moving will be carried out only in the case when binary contents of these files are different. It allows to carry out smart incremental updating of the target folder. The value of 0 results in “unconditional” execution of file operations. Any other value will be interpreted as 0.

The second group of keys determines the actions that need to be performed with the updated files found in the source folder.

MoveFiles:<0|1>
If the value of this key is equal to 1, updated files will be moved from the source folder to the target folder, and if the value is equal to 0, these files will be copied. Any other value will be interpreted as 0.
UploadFiles:<0|1>
If the value of this key is equal to 1, updated files will be uploaded to the specified FTP server and will not if the value is equal to 0. Any other value will be interpreted as 0.
ZipFiles:<0|1>
The archive file in ZIP format will be created from a target folder if the value of this key equals to 1, and such file will be not created if the value equals to 0. Any other value will be interpreted as 0.
SendFiles:<0|1>
Archive file with the target folder will be sent to the specified e-mail address if the value of this key is equal to 1, and will be not if the value is equal to 0. Any other value will be interpreted as 0.

The third group of keys specifies the FTP server for updated files and parameters of interaction with it.

FTP-Server:<server_name>
FTP server name. The prefix “ftp://” is not necessary to specify.
FTP-Port:<port_number>
The port through which connection is established. Standard value is 21.
FTP-Login:<login>
Login (user’s name on this server).
FTP-Password:<password>
The user’s password.
FTP-Root:<folder_name>
Root folder on a server into which it is necessary to upload files from a target folder on a local computer (with preservation of its structure).
FTP-UsePassiveMode:<0|1>
If the value of this key is equal to 1, the so-called “passive operating mode” with a server will be used, and if the value of this key is equal to 0 — the usual one. Any other value will be interpreted as 0.

The fourth group of keys sets parameters of the SMTP connection that is used for sending ZIP-archive with the target folder to the specified e-mail address.

SMTP-Enable
To enable SMTP usage. Value of this key is ignored; therefore it is no use to specify it.
SMTP-From:<sender’s_address>
It is an E-mail address of the mail sender.
SMTP-MailTo:<recipient’s_address>
It is an E-mail address of the recipient of the mail.
SMTP-Subject:<letter_subject>
It is а subject of the mail. If the subject contains blanks, it is necessary to put in quotes the value of this key; otherwise, quotes' usage is acceptable, but not obligatory.
SMTP-Host:<server_name>
It is the name of the SMTP server which should be used for sending the mail.
SMTP-Port:<port_number>
It is the port through which the connection is established. Standard value is 25.
SMTP-Authentication:<0|1|2|3|4>
The Value of the this key defines the method of the authentication, that is used at the access to a server. 0 corresponds to the absence of the authentication; 1 — to CRAM-MD5 method; 2 — to Login method; 3 — to Plain method; 4 — to NTLM method. Any other value will be interpreted as 0.
SMTP-UserName:<user_name>
It is the user name (at the usage of the authentication).
SMTP-Password:<password>
It is the user password (at the usage of the authentication).
SMTP-UseSSL:<0|1>
If the value of this key is equal to 1, the so-called “Secure Sockets Layer” protocol will be used for the connection with the server. This protocol guarantees safe data transmission on the network by means of combining cryptographic system with the open key and block encrypting of data. If the value is equal to 0, the usual SMTP protocol will be used. Any other value will be interpreted as 0.
SMTP-CharSet:<character_set>
It is the encoding of the mail body (for example, "windows-1251") which will be specified in corresponding SMTP header.

The fifth group of keys sets the parameters of creation of ZIP-archive with a target folder.

ZIP-Method:<0|1>
It is the method (algorithm) used for compression. 0 means “Deflate” algorithm, and 1 — “BZip2” algorithm. Any other value will be interpreted as 0. Attention: this key is recognized only by UpdateIt! Pro edition.
ZIP-Compression:<0|1|2|3>
It is the compression level of archive. 0 means absence of compression; 1 — the fastest compression; 2 — default compression (optimal on a ratio of speed and size); 3 — the maximum compression. Any other value will be interpreted as 2.
ZIP-Encryption:<0|1|2|3|4>
It is the method of archive encrypting. 0 means absence of encrypting, and 1 — the standard encrypting supported by ZIP algorithm. The values of 2, 3 and 4 corresponds to AES-128, AES-192 and AES-256 encryption respectively. Attention: these three values will be recognized only by UpdateIt! Pro edition. Any other value will be interpreted as 0.
ZIP-Password:<password>
It is the password on the encrypted archive.

Sixth and last group of keys sets various general parameters.

Font-FaceName:<font_name>
It is the name of a font which will be used by windows of the application. The value of this key is used only if the key Font-PointSize is specified and this key has a correct numeric value.
Font-PointSize:<font_size>
It is the size (in points) of a font which will be used by windows of the application. The value of this key is used only if the key Font-FaceName is specified.
ResponseFile:<file_name>
It is the name of the text file that contains other keys of the command line for the application. If the path to a file is not specified at all it will be considered to be in the current folder; if the relative path is specified it will be considered to be specified regarding the current folder. Each line of such file can contain one or several keys. The Usage of such files allows to create unlimited number of the shortcuts that give fast access to the typical scripts of the application use. If this key is specified in the command line all other keys will be ignored.
DontSaveInput
Not to remember the user input (either transmitted by means of the command line or set by means of the graphic interface). The value of this key is ignored, therefore its indication is not important.

At present the use of keys of the command line does not automate the work of the application completely, it only substitutes the specified parameters into corresponding controls. It allows to accelerate user’s work as much as possible if typical scripts of search and processing of the updated files are present. Each of the keys can be used independently if it has not been stipulated in a different way (as in case of the keys Font-FaceName and Font-PointSize).

In any case, the keys of the command line have a priority over the corresponding options that are kept at the system registry. For example, if the command line contains the key SourceDir-Recurce that has the incorrect value of 4, and the corresponding parameter in the system registry has the correct value of 0, the final “result” will be 1 as the interpretation of key value from the command line.

Version history

1.6.5961 (09.10.2011)
Updated ZipArchive library to the version 4.1.1 from the 27th of June 2011. Updated OpenSSL library to the version 1.0.0e (6 Sep 2011).
1.6.5842 (18.06.2011)
Updated CRT and MFC redistributable DLLs to version 9.0.30729.6161; for more information please visit Microsoft security bulletin MS11-025: Description of the security update for Visual Studio 2008 SP1: June 14, 2011.
1.6.5799 (08.05.2011)
Updated CRT and MFC redistributable DLLs to version 9.0.30729.5570; for more information please visit Microsoft security bulletin MS11-025: Description of the security update for Visual C++ 2008 SP1 Redistributable Package. Updated OpenSSL library to the version 1.0.0d (8 Feb 2011).
1.6.5755 (27.03.2011)
Added the ability to visually select the target folder on the FTP-server. Added ability to save the settings of any number of FTP-servers. Added “FTP Site Manager”. Component to send messages using the SMTP protocol has been updated to version 2.92, dated 13 February 2011. OpenSSL library is updated to the version 1.0.0c from the 2th of December 2010.
1.5.5433 (25.09.2010)
Improved installation/uninstallation issues handling. Greatly improved MUI installation mechanism. Improved E-mail charset handling. Added crash reporting via E-mail feature. Dropped Windows 98/Me operations systems support. Fixed several UI glitches. Updated end-user documentation. ZipArchive library is updated to the version 4.0.1 from the 20th of April 2010. OpenSSL library is updated to the version 1.0.0a from the 1th of June 2010. The development of the project is converted under MS Visual C++ 2008 SP1; with this version the compatibility of the source code with Visual C++ 7.1 SP1 compiler is not guaranteed. It is necessary to use Repository project of revision 511 or above to build this version from sources (it is possible to download the so-called “universal installer” alternatively — it contains absolutely all sources which are necessary for independent building of the application and its installers).
1.4.4324 (04.07.2008)
Some errors are fixed. Added UpdateIt! Pro edition. Added end-user documentation in English.
1.3.4134 (06.01.2008)
The ability to use the keys of the command line is added. the Verification of the correctness of the user input is improved. Some noncritical errors are fixed. Russian-language localization of installer is improved a bit. ZipArchive library is updated to the version 3.2.0 from the 15th of December 2007. OpenSSL library is updated to the version 0.9.8g from the 19th of October 2007. Attention: it is required to use Repository project of revision 110 or above to build this version from sourcess.
1.2.3920 (16.10.2007)
The ability to set parameters of archiving of the updated files is added: the level of compression and the method of encrypting. The application is rebuilt with the version 3.1.1 of ZipArchive library.
1.1.3870 (30.08.2007)
The support of the multilingual interface was added into the application and into its installer (at present English and Russian languages are supported). Initially the language is selected during the installation, but it can be changed at any moment by means of the command Language in the system menu.
1.0.3841 (01.08.2007)
The application is rebuilt with the version 3.0.2 of ZipArchive library.
1.0.3696 (16.03.2007)
The ability of authentication on the SMTP server that is used for sending the mail is added; methods SRAM-MD5, Login, Plain and NTLM are supported. The ability to use the SSL connection while working with SMTP is added. The development of the project is converted under MS Visual C++ 7.1 SP1; with this version the compatibility of the source code with Visual C++ 7.0 SP1 compiler is not guaranteed. It is necessary to use Repository project of revision 81 or above to build this version from sources (it is possible to download the so-called “universal installer“ alternatively — it contains absolutely all sources which are necessary for independent building of the application and its installers).
1.0.3410 (19.10.2006)
The license agreement is added to the application and its source code — Apache License, Version 2.0. the "Universal" installer is added, it allows to choose one of possible types of installation (for example, with all sources necessary for the independent building of the application). Development of the project is converted under MS Visual C ++ 7.0 SP1; with this version, the compatibility of the source code with Visual C++ 6.0 SP6 compiler is not guaranteed.
1.0.3346 (18.08.2006)
The ability of interaction with FTP-servers in so-called “passive mode” is added — via Use passive mode option on the step Choosing an action (my gratitude to Pavel Pimenov for reporting this issue). Authors improved the realization of compression of files in ZIP format and message sending using SMTP protocol. Attention: it is necessary to use Repository project of revision 71 or above to build this version from sources.
1.0.2800 (16.07.2005)
Support for visual styles on Windows XP/2003 is added. Authors improved the realization of compression of files in ZIP format and message sending using using SMTP protocol.
1.0.2711 (23.04.2005)
Authors improved the realization of compression of files in ZIP format and message sending using using SMTP protocol.
1.0.2598 (06.01.2005)
The ability of export/import of options of the application is added (works only under Windows 2000/XP/2003). The system menu is “improved” a bit. The author corrected some errors in the code that realizes the support of SMTP protocol.
1.0.2461 (29.12.2004)
The end-user documentation in HTML Help format is added. It is insistently recommended to un-install the previous version in a regular way before the installation of the given version.
1.0.2297 (25.07.2004)
The executable file of the application is built with the optimization of the size.
1.0.2283 (11.07.2004)
The ability to compare the contents of the updated files with their existing old copies in a target folder is added.
1.0.2260 (20.06.2004)
Some spelling mistakes on page Welcome! are corrected.
1.0.2259 (19.06.2004)
The author corrected some errors in the code that realizes the support of SMTP protocol (this code is used at sending the archive of the updated files to the specified e-mail address).
1.0.2172 (28.03.2004)
Very stupid error is corrected: this error was the reason for non-responsiveness of the application to system inquiries while performing file operations. The error which led to the incorrect restoration of the password for the access to FTP server is corrected. The ability of minimization of the application window is added.
1.0.2171 (27.03.2004)
The column Size is added to the list of the updated files on page Selecting files. This column displays file sizes in bytes. Now in the column Name of this list not only file names are shown but also the system icons which correspond their types. The ability to sort the list both in ascending and descending order is added. Now the setup writes into the system registry default the value for file masks which should be excluded from search.
1.0.2169 (25.03.2004)
The ability to set one or several masks for files which should be excluded from search is added. Now in the tree the node corresponding to the folder, whose name is specified in the input field, is automatically marked out at the opening of the dialog box of folder choice.
1.0.2159 (15.03.2004)
The Encrypting of the password for access to a FTP-server is implemented at its preservation in the system registry.
1.0.xxxx (?)
The history was not kept. Most likely, the first stable version that was suitable for practical use was 1.0.1646…

Setup packages

 update-it-1.6.5961-setup.zip (4 061 269 bytes)
Standard installer. It installs executable files of the application, CRT/MFC redistributable DLLs versions 9.0.30729.6161, OpenSSL redistributable DLLs versions 1.0.0e and the end-user documentation (all redistributable DLLs are copied into the application folder).

 update-it-1.6.5961-setup-universal.zip (12 945 919 bytes)
Universal installer. It offers the choice of four types of installation: Typical Installation (it corresponds to the Standard variant), Compact Installation (only executable files of the application and the end-user documentation), Full Installation (the Standard variant plus all the sources necessary for the unassisted building of the application and its installer) and Custom Installation (a set of components is defined by the user).

 update-it-pro-1.6.5961-setup.zip (4 094 435 bytes)
UpdateIt! Pro edition. It offers the choice of three types of installation: Full Installation (it corresponds to the Standard variant), Compact Installation (only executable files of the application and the end-user documentation) and Custom Installation (a set of components is defined by the user).

Building project from sources

Two build configurations are defined for the project: “Unicode Debug | Win32” and “Unicode Release | Win32”, based on “Win32 (x86) Application” dynamically linked to the CRT and MFC libraries.

Currently Microsoft Visual C++ 2008 SP1 and Microsoft Windows SDK version 7.1 are used to build all the application executable files. The end-user documentation is compiled by Microsoft HTML Help Workshop version 4.74.8702. Inno Setup Compiler version 5.4.2 (unicode) is used for the creation of the setup packages.

Attention: presence of sources of Repository project is required for the building of the applications, the folder with these files should be based on the same level as the folder UpdateIt, as it is shown in picture on the right.

 Sources: update-it-src.zip (5 305 580 bytes).

UpdateIt! On Google Code

Since December, 2007, the UpdateIt! project, is placed on Google Code as well. Its main page is accessible at http://update-it.googlecode.com. It is possible to find the latest development builds as well as the mirror of Apache Subversion repository with all revisions of project sources there. For anonymous access to reading this mirror and receiving local copies of all files that are required for independent building, It is necessary to perform the following steps.

  1. Create somewhere in file system a new folder with the name GoogleCode for example.
  2. Launch Command Prompt, go to this folder and sequentially execute these commands:
    svn checkout http://repositorium.googlecode.com/svn/trunk/ Repository
    svn checkout http://update-it.googlecode.com/svn/trunk/ UpdateIt

After that, to build the project, it is enough to open the file UpdateIt.2008.sln from the folder GoogleCode\UpdateIt in Microsoft Visual Studio 2008 environment, to set UpdateIt as the startup project and then to execute Build Solution command. Completely automated building of the project and its distribution kits can be executed by means of utility NAnt after its assignment on an input file UpdateIt.2008.build — it is necessary to go to the GoogleCode\UpdateIt folder and then to execute a corresponding command from Visual Studio 2008 Command Prompt.

Awards

         
         
         
         
         
         
         
last updated
09.10.2011
 
Проверка PR и ТИЦ