⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 surface.vb

📁 文件复制器 2007.07.28.0最新VB源代码 地狱门神(F.R.C.) 适用范围 Windows环境下
💻 VB
📖 第 1 页 / 共 2 页
字号:
'==========================================================================
'
'  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 + -