magus Posted September 13, 2008 Share Posted September 13, 2008 (edited) One day, software such as this will make it possible for us to live in a world in which documents are NEVER lost! Everyone's documents will be automatically backed up whenever they are modified. It's a completely automated process.Digg: http://digg.com/gadgets/DIGG_THIS_Auto_bac...ments_w_DropBoxThe compiled program is ready to go out of the box, once DropBox has been installed.Program: Auto_DropBox.exe (updated)expandcollapse popup;Written by magus.from.chrono.trigger@gmail.com ;Description: This script will automatically back up every instance of certain filetypes. It will run continuously check for newly modified files in the background, however it will only re-index the host computer when it has been idle for a certain amount of time. ;Requirements: DropBox : http://www.getdropbox.com/ #RequireAdmin #Include <File.au3> #Include <Date.au3> #include <Timers.au3> Opt("TrayIconDebug", 1) ;------------------Preferences---------------- $idle_time_in_minutes = 60;amount of time since last user activity (i.e. KYBD/Mouse) necessary before re-indexing may begin. $auto_backup_cycle = 1;delay to be distributed evenly amongst the tasks to be completed during each auto-backup cycle, in minutes. Increase this if the script slows your computer down. $max_size_in_MB = 20 $extension_list = "pdf txt rtf doc docx docm dotx dotm xls xlsx xlsm xltx xltm xlsb xlam ppt pptx potx potm ppam ppsx ppsm sldx sldm thmx";this is a space-delimited list $destination = @MyDocumentsDir & "\My Dropbox\Document Backup\";location where you'd like your MS Office files backed up. $index_location = @MyDocumentsDir & "\magus\" $parent_directory = "c:\Users\";Only the parent directory and its subdirectories will be indexed. ;--------------------------------------------- $file_formats = StringSplit($extension_list, " ") Global $PID[$file_formats[0] + 1] $idleticks = $idle_time_in_minutes * 60 * 1000 $max_bytes = $max_size_in_MB * 1000000 ProcessSetPriority(@AutoItPID, 1) For $i = 1 to $file_formats[0];EDIT: this only runs the initial search if necessary If NOT FileExists($index_location & $file_formats[$i] & "_list.txt") Then _SearchForFiles() Next While 1 If _Timer_GetIdleTime() > $idleticks Then _SearchForFiles();Searching For Documents, if idle For $i = 1 to $file_formats[0];Uploading recently modified documents $lines = _FileCountLines($index_location & $file_formats[$i] & "_list.txt") For $q = 1 to $lines $source = FileReadLine($index_location & $file_formats[$i] & "_list.txt", $q) If FilegetSize($source) < $max_bytes Then $source_path = StringTrimLeft($source, StringLen($parent_directory)) For $z = 1 to 80;StringLen($source_path) If StringInStr(StringRight($source_path, $z), "\") Then ExitLoop Next $source_path = StringTrimRight($source_path, $z - 1) $filename = StringTrimLeft($source, (StringLen($source) - $z + 1)) If FileExists($destination & $source_path & $filename) Then $source_time = FileGetTime($source) $destination_time = FileGetTime($destination & $source_path & $filename) $date_diff = _DateDiff('s', $source_time[0] & "/" & $source_time[1] & "/" & $source_time[2] & " " & $source_time[3] & ":" & $source_time[4] & ":" & $source_time[5], $destination_time[0] & "/" & $destination_time[1] & "/" & $destination_time[2] & " " & $destination_time[3] & ":" & $destination_time[4] & ":" & $destination_time[5]) If $date_diff < 0 Then FileCopy($source, $destination & $source_path, 9) Else FileCopy($source, $destination & $source_path, 9) EndIf EndIf Sleep($auto_backup_cycle / $file_formats[0] / $lines * 1000 * 60) Next Sleep(500) Next Sleep(1000) WEnd Func _SearchForFiles() For $i = 1 to $file_formats[0] $PID[$i] = Run(@comspec & ' /c dir ' & $parent_directory & '"*.' & $file_formats[$i] & '" /b/oN/s > "' & $index_location & "*" & $file_formats[$i] & '_list.txt"', "", @SW_HIDE);EDIT: added "*" wildcard after index_location ProcessSetPriority ($PID[$i], 0) Next For $i = 1 to $file_formats[0];Waiting for all the command processors to close ProcessWaitClose($PID[$i]) Next EndFuncIf you find a bug, post as many details as you can here, and I'll try to fix it. Edited September 13, 2008 by magus Link to comment Share on other sites More sharing options...
peppercorngiant Posted September 14, 2008 Share Posted September 14, 2008 I will try this, and let you know how it went. [font="Lucida Console"]The truth is out there[/font] Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now