📄 surface.vb
字号:
'==========================================================================
'
' File: Surface.vb
' Location: FileCopier <Visual Basic .Net>
' Description: 界面
' Version: 2007.07.28.
' Copyright(C) F.R.C.
'
'==========================================================================
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports FileCopier.FileCopy
Public Class Surface
#Region " 配置 "
Private Opt As INI
Private INISettingNotice As String = "FileCopier初始化配置文件" & Environment.NewLine & "在不了解此文件用法的时候请不要编辑此文件。"
Private Title As String
Private DebugTip As String = "程序出现错误,如果你确定它不应该出现,请通过下面的网址联系我。" & Environment.NewLine & "是否将网址和具体的错误信息复制到剪贴板?"
Private Sub FileCopier_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
LoadOpt()
Title = Me.Text
Label_ProgressBarStatus.Text = ""
End Sub
Private Sub FileCopier_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
SaveOpt()
End Sub
Sub LoadOpt()
Opt = New INI("FileCopier.ini")
Opt.ReadValue("Option", "SameFileIdentifier", SameFileIdentifier)
Opt.ReadValue("Option", "CreateTimeAndCharCaseHandling", CreateTimeAndCharCaseHandling)
Opt.ReadValue("Option", "DifferentFileHandling", DifferentFileHandling)
Opt.ReadValue("Option", "PreserveDeleted", CheckBox_PreserveDeleted.Checked)
Opt.ReadValue("Parameter", "SourceDir", TextBox_SourceDir.Text)
Opt.ReadValue("Parameter", "TargetDir", TextBox_TargetDir.Text)
Opt.ReadValue("Parameter", "NewDir", TextBox_NewDir.Text)
Opt.ReadValue("Parameter", "BackupDir", TextBox_BackupDir.Text)
Opt.ReadValue("Parameter", "ExceptionalDir", TextBox_ExceptionalDir.Text)
Opt.ReadValue("Parameter", "LogPath", TextBox_LogPath.Text)
Opt.ReadValue("Parameter", "Filters", TextBox_Filters.Text)
Opt.ReadValue("Parameter", "PreCopy", TextBox_PreCopy.Text)
Opt.ReadValue("Parameter", "PostCopy", TextBox_PostCopy.Text)
End Sub
Sub SaveOpt()
Microsoft.VisualBasic.ChDir(Application.StartupPath)
Opt.WriteValue("Option", "SameFileIdentifier", CInt(SameFileIdentifier))
Opt.WriteValue("Option", "CreateTimeAndCharCaseHandling", CInt(CreateTimeAndCharCaseHandling))
Opt.WriteValue("Option", "DifferentFileHandling", CInt(DifferentFileHandling))
Opt.WriteValue("Option", "PreserveDeleted", CheckBox_PreserveDeleted.Checked)
Opt.WriteValue("Parameter", "SourceDir", TextBox_SourceDir.Text, False)
Opt.WriteValue("Parameter", "TargetDir", TextBox_TargetDir.Text, False)
Opt.WriteValue("Parameter", "NewDir", TextBox_NewDir.Text, False)
Opt.WriteValue("Parameter", "BackupDir", TextBox_BackupDir.Text, False)
Opt.WriteValue("Parameter", "ExceptionalDir", TextBox_ExceptionalDir.Text, False)
Opt.WriteValue("Parameter", "LogPath", TextBox_LogPath.Text, False)
Opt.WriteValue("Parameter", "Filters", TextBox_Filters.Text, False)
Opt.WriteValue("Parameter", "PreCopy", TextBox_PreCopy.Text, False)
Opt.WriteValue("Parameter", "PostCopy", TextBox_PostCopy.Text, False)
Opt.WriteToFile("/*" & Environment.NewLine & INISettingNotice & Environment.NewLine & "*/" & Environment.NewLine)
End Sub
Sub MsgBox(ByVal ex As Exception)
Dim r As Microsoft.VisualBasic.MsgBoxResult = Microsoft.VisualBasic.MsgBox(DebugTip & Environment.NewLine & Environment.NewLine & "http://www.cnblogs.com/Rex/Contact.aspx?id=1" & Environment.NewLine & Environment.NewLine & ex.ToString, Microsoft.VisualBasic.MsgBoxStyle.Critical Or Microsoft.VisualBasic.MsgBoxStyle.YesNo, Title)
If r = Microsoft.VisualBasic.MsgBoxResult.Yes Then
My.Computer.Clipboard.SetText("http://www.cnblogs.com/Rex/Contact.aspx?id=1" & Environment.NewLine & Environment.NewLine & ex.ToString)
End If
End Sub
#End Region
Private FileCopy As FileCopy
#Region " 初始化 "
Private Property SameFileIdentifier() As FileCopy.SameFileIdentifierOption
Get
Dim ret As FileCopy.SameFileIdentifierOption
If CheckBox_SameFileIdentifier_Path.Checked Then ret = ret Or FileCopy.SameFileIdentifierOption.Path
If CheckBox_SameFileIdentifier_First64K.Checked Then ret = ret Or FileCopy.SameFileIdentifierOption.First64K
If CheckBox_SameFileIdentifier_FullFile.Checked Then ret = ret Or FileCopy.SameFileIdentifierOption.FullFile
If CheckBox_SameFileIdentifier_CorrectWriteTimeOffsetIn2s.Checked Then ret = ret Or FileCopy.SameFileIdentifierOption.CorrectWriteTimeOffsetIn2s
Return ret
End Get
Set(ByVal Value As FileCopy.SameFileIdentifierOption)
CheckBox_SameFileIdentifier_Path.Checked = Value And FileCopy.SameFileIdentifierOption.Path
CheckBox_SameFileIdentifier_First64K.Checked = Value And FileCopy.SameFileIdentifierOption.First64K
CheckBox_SameFileIdentifier_FullFile.Checked = Value And FileCopy.SameFileIdentifierOption.FullFile
CheckBox_SameFileIdentifier_CorrectWriteTimeOffsetIn2s.Checked = Value And FileCopy.SameFileIdentifierOption.CorrectWriteTimeOffsetIn2s
End Set
End Property
Private Property CreateTimeAndCharCaseHandling() As FileCopy.CreateTimeAndCharCaseHandlingOption
Get
If RadioButton_CreateTimeAndCharCaseHandling_Source.Checked Then
Return FileCopy.CreateTimeAndCharCaseHandlingOption.Source
ElseIf RadioButton_CreateTimeAndCharCaseHandling_Target.Checked Then
Return FileCopy.CreateTimeAndCharCaseHandlingOption.Target
ElseIf RadioButton_CreateTimeAndCharCaseHandling_Earlier.Checked Then
Return FileCopy.CreateTimeAndCharCaseHandlingOption.Earlier
End If
End Get
Set(ByVal Value As FileCopy.CreateTimeAndCharCaseHandlingOption)
If Value = FileCopy.CreateTimeAndCharCaseHandlingOption.Source Then
RadioButton_CreateTimeAndCharCaseHandling_Source.Checked = True
ElseIf Value = FileCopy.CreateTimeAndCharCaseHandlingOption.Target Then
RadioButton_CreateTimeAndCharCaseHandling_Source.Checked = True
ElseIf Value = FileCopy.CreateTimeAndCharCaseHandlingOption.Earlier Then
RadioButton_CreateTimeAndCharCaseHandling_Earlier.Checked = True
End If
End Set
End Property
Private Property DifferentFileHandling() As FileCopy.DifferentFileHandlingOption
Get
If RadioButton_DifferentFileHandling_Backup.Checked Then
Return FileCopy.DifferentFileHandlingOption.Backup
ElseIf RadioButton_DifferentFileHandling_CopyNew.Checked Then
Return FileCopy.DifferentFileHandlingOption.CopyNew
End If
End Get
Set(ByVal Value As FileCopy.DifferentFileHandlingOption)
If Value = FileCopy.DifferentFileHandlingOption.Backup Then
RadioButton_DifferentFileHandling_Backup.Checked = True
ElseIf Value = FileCopy.DifferentFileHandlingOption.CopyNew Then
RadioButton_DifferentFileHandling_CopyNew.Checked = True
End If
End Set
End Property
Private Function SeparateLines(ByVal s As String) As String()
If s = "" Then Return New String() {}
Return s.Replace(ChrW(13) & ChrW(10), ChrW(10)).Trim(ChrW(10)).Split(ChrW(10))
End Function
Private Sub Prepare()
FileCopy = New FileCopy
FileCopy.SetFileCopyOption(SameFileIdentifier, CreateTimeAndCharCaseHandling, DifferentFileHandling, CheckBox_PreserveDeleted.Checked)
FileCopy.SetFileCopyParameter(TextBox_SourceDir.Text, TextBox_TargetDir.Text, TextBox_NewDir.Text, TextBox_BackupDir.Text, TextBox_ExceptionalDir.Text, TextBox_LogPath.Text, SeparateLines(TextBox_Filters.Text))
End Sub
#End Region
Private Sub Button_Analyze_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Analyze.Click
#If CONFIG <> "Debug" Then
Try
#End If
Button_Analyze.Enabled = False
Button_Apply.Enabled = False
SaveOpt()
Prepare()
FileCopy.AnalyzeFeasibility(SeparateLines(TextBox_PreCopy.Text), TextBox_Result.Text, AddressOf ProgressBar1_Change)
ProgressBar1_Change(1) '保证在0项时仍然能够使进度条到达最末
Delay(0.5)
ProgressBar1_Change(0, "")
Button_Analyze.Enabled = True
Button_Apply.Enabled = True
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -