home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 November
/
CPNL0711.ISO
/
beeld
/
screen
/
hcf.exe
/
Basic
/
Basic_File_101_Copy_Directory_or_Partition.bas
< prev
next >
Wrap
BASIC Source File
|
2003-11-26
|
5KB
|
134 lines
File.TestOnly = TRUE ' for run in update mode, Please use FALSE or delete this line
File2.TestOnly = TRUE ' for run in update mode, Please use FALSE or delete this line
copyFrom = "d:"
copyTo = "g:\\save_D"
Image(0).Resample(800,1200)
Image(0).Color = _ColorWhite
line = 1
oldFontSize = Font.Size
Font.Size = Font.Size * 2
Font.Bold = TRUE
Image(0).Position(10,line*Font.Size).text = "Copy " + copyFrom + " to " + copyTo
Font.Bold = FALSE
line = line + 5
Font.Size = oldFontSize
copyFrom = copyFrom + "\\"
copyTo = copyTo + "\\"
Redraw()
Font.Name = "Courier New"
File.Recursive = TRUE
File.CreateDirectoryByCopyTo = TRUE
File.Find( copyTo + "*" ) ' Step 1: Delete all files not in From
For i = 0 To File.NumberOfElements - 1
f = copyFrom + Mid( File( i ).Path, Len( copyTo ),999)
File2.Find( f )
If File2.NumberOfElements = 0 Then
ret = File(i).Delete()
If ret <> "" Then
Image(0).Rectangle(0,line*Font.Size,Image(0).Width,Font.Size).Color = _ColorWhite
Image(0).Position(10,line*Font.Size).text = "Delete: " + File(i).Path
line = line + 1
Image(0).Position(10,line*Font.Size).text = " " + ret
line = line + 1
Else
DeleteInTo = DeleteInTo + 1
EndIf
Else
If File(i).Time <> File2(i).Time or File(i).Size <> File2(i).Size Then
ret = File(i).Delete()
If ret <> "" Then
Image(0).Rectangle(0,line*Font.Size,Image(0).Width,Font.Size).Color = _ColorWhite
Image(0).Position(10,line*Font.Size).text = "Delete: " + File(i).Path
line = line + 1
Image(0).Position(10,line*Font.Size).text = " " + ret
line = line + 1
Else
DeleteTimeOrSizeDifferent = DeleteTimeOrSizeDifferent + 1
EndIf
EndIf
EndIf
If i Mod 100 = 0 Then
Image(0).Position(10,line*Font.Size).text = i + " Files proccesed, number of files deleted: " + DeleteInTo
Redraw()
EndIf
Next
Beep
Image(0).Rectangle(0,line*Font.Size,Image(0).Width,Font.Size).Color = _ColorWhite
Image(0).Position(10,line*Font.Size).text = "Number of files deleted: " + DeleteInTo + " + " + DeleteTimeOrSizeDifferent + " (time/size different)"
line = line + 2
Image(0).Position(10,line*Font.Size).text = "Step 1 finished"
line = line + 3
Redraw()
File.SortOrder = _SortDescending
File.OnlyDirectories = TRUE
File2.OnlyDirectories = TRUE
File.Find( copyTo + "*" ) ' Step 2: Delete all directory not in From
For i = 0 To File.NumberOfElements - 1
f = copyFrom + Mid( File( i ).Path, Len( copyTo ),999)
File2.Find( f )
If File2.NumberOfElements = 0 Then
ret = File(i).Delete()
If ret <> "" Then
Image(0).Rectangle(0,line*Font.Size,Image(0).Width,Font.Size).Color = _ColorWhite
Image(0).Position(10,line*Font.Size).text = "Delete Directory: " + File(i).Path
line = line + 1
Image(0).Position(10,line*Font.Size).text = " " + ret
line = line + 1
Else
DeleteDirctoryInTo = DeleteDirctoryInTo + 1
EndIf
EndIf
If i Mod 10 = 0 Then
Image(0).Position(10,line*Font.Size).text = i + " Dirctorys proccesed, number of directories deleted: " + DeleteDirctoryInTo
Redraw()
EndIf
Next
File.SortOrder = _SortNone
File.OnlyDirectories = FALSE
File2.OnlyDirectories = FALSE
Beep
Image(0).Rectangle(0,line*Font.Size,Image(0).Width,Font.Size).Color = _ColorWhite
Image(0).Position(10,line*Font.Size).text = "Number of directories deleted: " + DeleteDirctoryInTo
line = line + 2
Image(0).Position(10,line*Font.Size).text = "Step 2 finished"
line = line + 3
Redraw()
File.Find( copyFrom + "*" ) ' Step 3: Copy all files not in To
For i = 0 To File.NumberOfElements - 1 ' or Time different
f = copyTo + Mid( File( i ).Path, Len( copyFrom ),999)
File2.Find( f )
If File2.NumberOfElements = 0 Then
ret = File(i).CopyTo( f )
If ret <> "" Then
Image(0).Rectangle(0,line*Font.Size,Image(0).Width,Font.Size).Color = _ColorWhite
Image(0).Position(10,line*Font.Size).text = "Copy: " + f
line = line + 1
Image(0).Position(10,line*Font.Size).text = " " + ret
line = line + 1
Else
CopyNotInTo = CopyNotInTo + 1
EndIf
EndIf
If i Mod 100 = 0 Then
Image(0).Position(10,line*Font.Size).text = "Number of files processed: " + (i+1) + " Number copied: " + CopyNotInTo
Redraw()
EndIf
Next
Image(0).Rectangle(0,line*Font.Size,Image(0).Width,Font.Size).Color = _ColorWhite
line = line + 1
Image(0).Position(10,line*Font.Size).text = "Number copied: " + CopyNotInTo
line = line + 2
Image(0).Position(10,line*Font.Size).text = "Step 3 finished"
line = line + 3
Image(0).Position(10,line*Font.Size).text = "Number of files processed: " + File.NumberOfFiles
Beep
Sleep(200)
Beep