Home / ver0.014_PullHash
Name Modified Size InfoDownloads / Week
Parent folder
lin 2015-11-08
win 2015-11-08
README.txt 2015-11-08 4.5 kB
Totals: 3 Items   4.5 kB 2
New : ability to pull hash file present in source directory and attach hashes at begin (no more need to select even the hash file and have a groving number of hash files), saved all parameters, other minor changes.

This is a simple program to copy files or directories and verify the copied files with md5 hash. 
How to use : 
The first startup is longer because it unpacks the package in a temp dir . From the second run the startup is speeder because it reuses the same temp dir. 

Primary window :
in the first line the are various objects: 
	1) a box where you select wich hash to compute : 
		MD5 (default) ,  SHA1 , SHA256 , SHA384 , SHA512 
	2) a box for the name of the file where will be written hashes when copying a dir, or the extension added to the file name when copying a single file.
	3) the indicator to decide if you want to replace existing files with older modification date.
	4) the indicator to decide if you want to copy even the initial selected directory.
	5) the dimension of the buffer in read and write operation in Megabyte (1 = 1MegaByte of buffer).
	6) the indicator to verify only newly copied files of the md5sum.md5 or all the files in the md5sum.md5
	7) a box where you select wich file_select_box to use in input and output : 
		MultiDir = (default) you can select multiple dirs or multiple files with a custom box
		multiple = you can select one dir or more than one file with a generic box
		Single   = you can select one file with an os_native box(now multiple?)
		Dir      = you can select one dir  with an os_native box

in the 2 and 3 line you select sorces (files and dirs)   and   one destination directory. 

In the forth line there are 6 object :
	1) Execute button
	2) A double box where you can see the length and number of byte copied for every single file during the copy operation(progres indicator).
	3) A Sotp indicator that you can activate to interrupt a long copy operation (if it is wrong...) 
	4) An Exit button

Than, there are 2 text box : one for stdout normal messages, one for stderr warning and error messages.

Hash is saved in and .md5(or .sha1 , .sha256 ...) file compatible with md5sum/shaX utility. Hash file is in utf8 (no bom) so in windows there can be compatibility problems. Perl support utf8 by default. 
It has a gui(Tk) and works on Linux and windows (the script should work even on Mac). 
Hash is computed while reading, so source files are read only once. 
The executables have been created using pp : it creates an executable similar to an autoextract-zip with the script, the perl engine and all libraries.
I'm using it under linux to copy GigaBytes files from ntfs internal hd  to ntfs external hd with an old atom eepc(msi u100). Speed is comparable with the system copier : 8.5MB/sec or a bit better. Obviously With more powerful pc speeds are far better (3 times).
Added ability to manage very long path (>260 char) under windows (under linux is default : magic linux!). 
the custom file_select box manges very long path, multiple selection of dirs and files, sort pushing column headers and Unicode(Non_latin_chars thru utf8).
Choose sort type before opening dirs. After changing sort type, dirs are NOT reloaded. 
Added full Unicode(utf8) support (both win and lin).
Now is possible to manage even files with name in non-latin characters (chinese,hebrew,cyrillic,greek...). Added auto-save of messages in a log file at end.
The verify phase has been moved at the end of all the copy phase (not after every single file copy as before) to reduce cache influence on hash verification.
Added possibility to copy files replacing destination (if exists) by modification date; some interface restiling.
Added : in and out saved in param file and restored , verified only newly copied file , other restiling
Added : choice between md5,sha1,sha256... ,saved buff_size, corrected some bugs and other minor changes.


To do :
2) verify the pulled hashes and do not add duplicated hashes
3) verify if very strange(illegal) file names create problem(i've verified that names with proibited(?) chars create problems  and if error situations(disk full...) are correctly managed.
4) make a good,standard perl module/widget for FileSelectTree.pm
5) clean sources

p.s. : many thanks to Perl and Tk creators and mantainers, to perlmonks and to all that wrote examples and helps : most of my work is just copy and paste. I hope they won't be offended by this bad code.
Source: README.txt, updated 2015-11-08