#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
Local $ulabel = "MALEMKHOANG" ; nhãn ổ USB
Local $userial = "" ; số serial USB
Local $sLabel
Local $sSerial
Local $sync = ""
Local $source
Local $dest = "g:\ASYNC" ; thư mục đồng bộ trên HDD
Local $Tsource
Local $Tdest
Local $kq
while 1 ; lặp không dừng
;1. lập mảng dữ liệu các ổ đĩa
Local $aArray = DriveGetDrive($DT_ALL) ; số lượng và ký tự tên ổ đĩa hiện thời của hệ thống
;2. lấy ký tự tên ổ đĩa, nhãn đĩa ... để đồng bộ
If @error Then
MsgBox($MB_SYSTEMMODAL, "", "It appears an error occurred.")
Else
For $i = 1 To $aArray[0]
$sLabel = DriveGetLabel(StringUpper($aArray[$i]) & "\") ; lấy nhãn đĩa
;$sSerial = DriveGetSerial(StringUpper($aArray[$i]) & "\") ; lấy serial
If $sLabel == $ulabel then ; AND $sSerial == $userial then
$sync = StringUpper($aArray[$i]) & "\" ; lấy tên thư mục gốc USB đồng bộ
ExitLoop
EndIf
Next
EndIf
;3. Demo copy tệp từ USB vào HDD
If $sync <> "" then
$source = $sync & "ASYNC" ; tên thư mục đồng bộ
$Tsource = FileGetTime($source, $FT_MODIFIED, 1) ; thời gian sửa đổi thư mục nguồn
$Tdest = FileGetTime($dest, $FT_MODIFIED, 1) ; thời gian sửa đổi thư mục đích
If $Tsource <> $Tdest then
;DirCopy($source, $dest, $FC_NOOVERWRITE) ; không chép đè
DirCopy($source, $dest, $FC_OVERWRITE) ; chép đè
$kq = FileSetTime($dest, $Tsource, $FT_MODIFIED) ; đặt lại thời gian thư mục đích
$kq = FileSetTime($source, $Tsource, $FT_MODIFIED) ; đặt lại thời gian thư mục nguồn
EndIf
$sync = ""
EndIf
sleep(5000) ; thời gian chờ quét tìm USB để đồng bộ: 5s
; thoát vòng lặp: chưa thiết kế
wend