diff --git a/BFR.WinApp/0.ico b/BFR.WinApp/0.ico new file mode 100644 index 0000000..8e11940 Binary files /dev/null and b/BFR.WinApp/0.ico differ diff --git a/BFR.WinApp/BFR.WinApp.csproj b/BFR.WinApp/BFR.WinApp.csproj new file mode 100644 index 0000000..795eaa8 --- /dev/null +++ b/BFR.WinApp/BFR.WinApp.csproj @@ -0,0 +1,89 @@ + + + + + Debug + AnyCPU + {4845D6A1-C7B1-4342-8D2F-432C254C12B0} + WinExe + Properties + BFR.WinApp + BFR.WinApp + v2.0 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + 0.ico + + + + + + + + + + + + + Form + + + FrmMain.cs + + + + + FrmMain.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + \ No newline at end of file diff --git a/BFR.WinApp/FileInfo.cs b/BFR.WinApp/FileInfo.cs new file mode 100644 index 0000000..e7b6749 --- /dev/null +++ b/BFR.WinApp/FileInfo.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace BFR.WinApp +{ + /// + /// 文件信息类 + /// + public class FileInfo + { + /// + /// 文件路径,以\结尾 + /// + public string Dir { get; set; } + + /// + /// 文件名,包含路径和扩展名 + /// + public string FullName { get; set; } + + /// + /// 安全文件名,不包含路径和扩展名 + /// + public string SafeName { get; set; } + + /// + /// 文件名,不包含路径 + /// + public string Name { get; set; } + + /// + /// 扩展名 + /// + public string Ext { get; set; } + + public FileInfo() { } + + /// + /// 文件信息类 + /// + /// 包含路径的文件 + public FileInfo(string fullname) + { + string dir = fullname.Remove(fullname.LastIndexOf("\\") + 1); + string name = fullname.Replace(dir, ""); + string ext = name.Substring(name.LastIndexOf(".")); + string safe = name.Replace(ext, ""); + + this.Dir = dir; + this.FullName = fullname; + this.Name = name; + this.SafeName = safe; + this.Ext = ext; + } + + /// + /// 文件信息类 + /// + /// 文件所在的目录 + /// 文件名称,包含扩展名 + public FileInfo(string dir,string name) + { + if (!dir.EndsWith("\\")) + { + dir += "\\"; + } + string ext = name.Substring(name.LastIndexOf(".")); + string safe = name.Replace(ext, ""); + + this.Dir = dir; + this.FullName = dir+name; + this.Name = name; + this.SafeName = safe; + this.Ext = ext; + } + } +} diff --git a/BFR.WinApp/FrmMain.Designer.cs b/BFR.WinApp/FrmMain.Designer.cs new file mode 100644 index 0000000..80fb5d2 --- /dev/null +++ b/BFR.WinApp/FrmMain.Designer.cs @@ -0,0 +1,407 @@ +namespace BFR.WinApp +{ + partial class FrmMain + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain)); + this.btnSelectFiles = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.StatusToolBar = new System.Windows.Forms.StatusStrip(); + this.panel3 = new System.Windows.Forms.Panel(); + this.FilesList = new System.Windows.Forms.ListView(); + this.No = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.FullName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.panel2 = new System.Windows.Forms.Panel(); + this.cbBak = new System.Windows.Forms.CheckBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.nudStart = new System.Windows.Forms.NumericUpDown(); + this.nudBit = new System.Windows.Forms.NumericUpDown(); + this.label7 = new System.Windows.Forms.Label(); + this.tbConnector = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.tbReName = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.tbReplaceText = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.tbReplacedText = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.btnStart = new System.Windows.Forms.Button(); + this.lblMsg = new System.Windows.Forms.Label(); + this.lnkAbout = new System.Windows.Forms.LinkLabel(); + this.label8 = new System.Windows.Forms.Label(); + this.panel3.SuspendLayout(); + this.panel2.SuspendLayout(); + this.groupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudStart)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBit)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // btnSelectFiles + // + this.btnSelectFiles.Location = new System.Drawing.Point(77, 17); + this.btnSelectFiles.Name = "btnSelectFiles"; + this.btnSelectFiles.Size = new System.Drawing.Size(75, 23); + this.btnSelectFiles.TabIndex = 5; + this.btnSelectFiles.Text = "浏览"; + this.btnSelectFiles.UseVisualStyleBackColor = true; + this.btnSelectFiles.Click += new System.EventHandler(this.btnSelectFiles_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(59, 12); + this.label1.TabIndex = 3; + this.label1.Text = "选择文件:"; + // + // StatusToolBar + // + this.StatusToolBar.Location = new System.Drawing.Point(0, 371); + this.StatusToolBar.Name = "StatusToolBar"; + this.StatusToolBar.ShowItemToolTips = true; + this.StatusToolBar.Size = new System.Drawing.Size(627, 22); + this.StatusToolBar.SizingGrip = false; + this.StatusToolBar.TabIndex = 5; + this.StatusToolBar.Text = "状态栏"; + // + // panel3 + // + this.panel3.Controls.Add(this.FilesList); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(0, 0); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(378, 371); + this.panel3.TabIndex = 8; + // + // FilesList + // + this.FilesList.BackColor = System.Drawing.SystemColors.Window; + this.FilesList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.No, + this.FullName}); + this.FilesList.Dock = System.Windows.Forms.DockStyle.Fill; + this.FilesList.FullRowSelect = true; + this.FilesList.GridLines = true; + this.FilesList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.FilesList.HideSelection = false; + this.FilesList.Location = new System.Drawing.Point(0, 0); + this.FilesList.Name = "FilesList"; + this.FilesList.ShowItemToolTips = true; + this.FilesList.Size = new System.Drawing.Size(378, 371); + this.FilesList.TabIndex = 4; + this.FilesList.UseCompatibleStateImageBehavior = false; + this.FilesList.View = System.Windows.Forms.View.Details; + // + // No + // + this.No.Text = "序号"; + this.No.Width = 45; + // + // FullName + // + this.FullName.Text = "文件"; + this.FullName.Width = 325; + // + // panel2 + // + this.panel2.Controls.Add(this.cbBak); + this.panel2.Controls.Add(this.btnSelectFiles); + this.panel2.Controls.Add(this.label1); + this.panel2.Controls.Add(this.groupBox2); + this.panel2.Controls.Add(this.groupBox1); + this.panel2.Controls.Add(this.btnStart); + this.panel2.Dock = System.Windows.Forms.DockStyle.Right; + this.panel2.Location = new System.Drawing.Point(378, 0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(249, 371); + this.panel2.TabIndex = 7; + // + // cbBak + // + this.cbBak.AutoSize = true; + this.cbBak.Location = new System.Drawing.Point(159, 21); + this.cbBak.Name = "cbBak"; + this.cbBak.Size = new System.Drawing.Size(84, 16); + this.cbBak.TabIndex = 6; + this.cbBak.Text = "备份原文件"; + this.cbBak.UseVisualStyleBackColor = true; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.nudStart); + this.groupBox2.Controls.Add(this.nudBit); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.tbConnector); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.label4); + this.groupBox2.Controls.Add(this.tbReName); + this.groupBox2.Controls.Add(this.label5); + this.groupBox2.Location = new System.Drawing.Point(14, 132); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(224, 110); + this.groupBox2.TabIndex = 2; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "序号"; + // + // nudStart + // + this.nudStart.Location = new System.Drawing.Point(166, 75); + this.nudStart.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudStart.Name = "nudStart"; + this.nudStart.Size = new System.Drawing.Size(50, 21); + this.nudStart.TabIndex = 7; + this.nudStart.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBit + // + this.nudBit.Location = new System.Drawing.Point(72, 75); + this.nudBit.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudBit.Name = "nudBit"; + this.nudBit.Size = new System.Drawing.Size(33, 21); + this.nudBit.TabIndex = 7; + this.nudBit.Value = new decimal(new int[] { + 3, + 0, + 0, + 0}); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(109, 79); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(59, 12); + this.label7.TabIndex = 3; + this.label7.Text = "开始序号:"; + // + // tbConnector + // + this.tbConnector.Location = new System.Drawing.Point(72, 47); + this.tbConnector.Name = "tbConnector"; + this.tbConnector.Size = new System.Drawing.Size(146, 21); + this.tbConnector.TabIndex = 5; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(7, 79); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(59, 12); + this.label6.TabIndex = 3; + this.label6.Text = "序号位数:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(7, 52); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(59, 12); + this.label4.TabIndex = 3; + this.label4.Text = "连接符号:"; + // + // tbReName + // + this.tbReName.Location = new System.Drawing.Point(72, 20); + this.tbReName.Name = "tbReName"; + this.tbReName.Size = new System.Drawing.Size(146, 21); + this.tbReName.TabIndex = 6; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(7, 25); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(59, 12); + this.label5.TabIndex = 4; + this.label5.Text = "重新命名:"; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.tbReplaceText); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.tbReplacedText); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Location = new System.Drawing.Point(14, 46); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(224, 80); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "替换"; + // + // tbReplaceText + // + this.tbReplaceText.Location = new System.Drawing.Point(72, 47); + this.tbReplaceText.Name = "tbReplaceText"; + this.tbReplaceText.Size = new System.Drawing.Size(146, 21); + this.tbReplaceText.TabIndex = 5; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(7, 52); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(59, 12); + this.label3.TabIndex = 3; + this.label3.Text = "替换内容:"; + // + // tbReplacedText + // + this.tbReplacedText.Location = new System.Drawing.Point(72, 20); + this.tbReplacedText.Name = "tbReplacedText"; + this.tbReplacedText.Size = new System.Drawing.Size(146, 21); + this.tbReplacedText.TabIndex = 6; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(7, 25); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(59, 12); + this.label2.TabIndex = 4; + this.label2.Text = "被替内容:"; + // + // btnStart + // + this.btnStart.Location = new System.Drawing.Point(77, 272); + this.btnStart.Name = "btnStart"; + this.btnStart.Size = new System.Drawing.Size(97, 51); + this.btnStart.TabIndex = 1; + this.btnStart.Text = "开始"; + this.btnStart.UseVisualStyleBackColor = true; + this.btnStart.Click += new System.EventHandler(this.btnStart_Click); + // + // lblMsg + // + this.lblMsg.AutoSize = true; + this.lblMsg.ForeColor = System.Drawing.Color.Blue; + this.lblMsg.Location = new System.Drawing.Point(2, 376); + this.lblMsg.Name = "lblMsg"; + this.lblMsg.Size = new System.Drawing.Size(29, 12); + this.lblMsg.TabIndex = 9; + this.lblMsg.Text = "就绪"; + // + // lnkAbout + // + this.lnkAbout.AutoSize = true; + this.lnkAbout.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lnkAbout.Location = new System.Drawing.Point(536, 377); + this.lnkAbout.Name = "lnkAbout"; + this.lnkAbout.Size = new System.Drawing.Size(31, 12); + this.lnkAbout.TabIndex = 10; + this.lnkAbout.TabStop = true; + this.lnkAbout.Text = "关于"; + this.lnkAbout.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkAbout_LinkClicked); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label8.Location = new System.Drawing.Point(576, 376); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(47, 12); + this.label8.TabIndex = 11; + this.label8.Text = "v1.0.0"; + // + // FrmMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(627, 393); + this.Controls.Add(this.label8); + this.Controls.Add(this.lnkAbout); + this.Controls.Add(this.lblMsg); + this.Controls.Add(this.panel3); + this.Controls.Add(this.panel2); + this.Controls.Add(this.StatusToolBar); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FrmMain"; + this.Text = "批量文件重命名工具"; + this.panel3.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudStart)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBit)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnSelectFiles; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.StatusStrip StatusToolBar; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.ListView FilesList; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox tbReplaceText; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox tbReplacedText; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btnStart; + private System.Windows.Forms.Label lblMsg; + private System.Windows.Forms.ColumnHeader No; + private System.Windows.Forms.ColumnHeader FullName; + private System.Windows.Forms.CheckBox cbBak; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox tbReName; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox tbConnector; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.NumericUpDown nudBit; + private System.Windows.Forms.NumericUpDown nudStart; + private System.Windows.Forms.LinkLabel lnkAbout; + private System.Windows.Forms.Label label8; + + } +} + diff --git a/BFR.WinApp/FrmMain.cs b/BFR.WinApp/FrmMain.cs new file mode 100644 index 0000000..8e9746e --- /dev/null +++ b/BFR.WinApp/FrmMain.cs @@ -0,0 +1,243 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; + +namespace BFR.WinApp +{ + public partial class FrmMain : Form + { + /// + /// 文件列表 + /// + List _files; + /// + /// 根目录 + /// + string _dir; + public FrmMain() + { + InitializeComponent(); + Msg(""); + } + + /// + /// 选择文件按钮事件 + /// + /// + /// + private void btnSelectFiles_Click(object sender, EventArgs e) + { + this.FilesList.Items.Clear(); + _files = null; + OpenFileDialog dialog = new OpenFileDialog(); + dialog.Multiselect = true; + DialogResult result = dialog.ShowDialog(); + if (result == DialogResult.Yes || result == DialogResult.OK) + { + _dir = GetFileDir(dialog.FileName); + _files = new List(); + + foreach (var item in dialog.FileNames) + { + _files.Add(new FileInfo(item)); + } + + Msg("已选择" + _files.Count + "个文件"); + FilesListInit(); + } + else + { + Msg("未选择文件"); + } + } + + /// + /// 开始执行按钮事件 + /// + /// + /// + private void btnStart_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrEmpty(this.tbReplacedText.Text.Trim()) && + string.IsNullOrEmpty(this.tbReName.Text.Trim())) + { + Msg("请填写操作参数:替换或者重命名相关信息"); + return; + } + + if (this._files == null || this._dir == null) + { + Msg("未选择文件"); + return; + } + + if (this.cbBak.Checked) + { + Msg("备份中……"); + string tmpPath = _dir + "tmp\\"; + if (!Directory.Exists(tmpPath)) + { + Directory.CreateDirectory(tmpPath); + } + foreach (var name in _files) + { + File.Copy(_dir + name, tmpPath + name); + } + } + + Msg("重命名中……"); + List fileList = new List(); + + int counter = 0; + + int type = 0; + + if (!string.IsNullOrEmpty(this.tbReName.Text.Trim())) + { + type = 1; + counter = (int)this.nudStart.Value; + if (this._files.Count > (this.nudBit.Value * 10 - 1 - this.nudStart.Value)) + { + Msg("序号位数最大值小于所选文件数,请更正序号位数"); + return; + } + } + else if (!string.IsNullOrEmpty(this.tbReplacedText.Text.Trim())) + { + type = 0; + } + + foreach (FileInfo info in _files) + { + string tmp = info.SafeName; + if (type == 0)//替换 + { + tmp = info.SafeName.Replace(this.tbReplacedText.Text.Trim(), this.tbReplaceText.Text.Trim()); + } + else if (type == 1)//重命名-序号 + { + tmp = this.tbReName.Text.Trim() + + this.tbConnector.Text.Trim() + + this.GetSerial(counter, (int)this.nudBit.Value); + } + + if (File.Exists(info.FullName)) + { + FileInfo _info = new FileInfo(); + _info.Dir = info.Dir; + _info.Ext = info.Ext; + _info.SafeName = tmp; + _info.Name = tmp + info.Ext; + _info.FullName = info.Dir + tmp + info.Ext; + fileList.Add(_info); + File.Move(info.FullName, _info.FullName); + } + counter++; + } + Msg("重命名完成"); + _files = fileList; + FilesListInit(); + } + catch (Exception ex) + { + Msg("异常"); + } + } + + /// + /// 关于事件 + /// + /// + /// + private void lnkAbout_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + this.lnkAbout.Links[0].LinkData = "https://github.com/SeayXu/BFR"; + System.Diagnostics.Process.Start(e.Link.LinkData.ToString()); + } + + /// + /// 初始化ListView + /// + public void FilesListInit() + { + if (this._files == null || this._files.Count < 1) + { + Msg("未选择文件"); + return; + } + this.FilesList.Items.Clear(); + int index = 1; + foreach (FileInfo info in _files) + { + ListViewItem item = new ListViewItem(index.ToString()); + item.SubItems.Add(info.Name); + this.FilesList.Items.Add(item); + index++; + } + } + + /// + /// 根据完整路径获取目录 + /// + /// + /// + public string GetFileDir(string filename) + { + try + { + if (string.IsNullOrEmpty(filename)) + { + return null; + } + string tmp = filename.Remove(filename.LastIndexOf("\\")+1); + return tmp; + } + catch (Exception ex) + { + return null; + } + } + + /// + /// 生成指定位数序号字符串 + /// + /// + /// + /// + public string GetSerial(int num,int bit) + { + string str = null; + if (num.ToString().Length >= bit) + { + return num.ToString().Substring(0,bit); + } + + int count = bit - num.ToString().Length; + + for (int i = 0; i < count; i++) + { + str += "0"; + } + + str += num.ToString(); + + return str; + } + + /// + /// 显示提示信息 + /// + /// + public void Msg(string info) + { + this.lblMsg.Text = info; + } + } +} diff --git a/BFR.WinApp/FrmMain.resx b/BFR.WinApp/FrmMain.resx new file mode 100644 index 0000000..d426440 --- /dev/null +++ b/BFR.WinApp/FrmMain.resx @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + 17, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + + 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 + M/8zMzP/NjY2/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/ODg4/zU1Nf8dHR2OODg4/zMz + M/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMz + M/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zQ0NP8zMzP/CQkJKwAAAAAAAAAACgoKMzQ0 + NP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zg4 + OP8cHByLNzc3/zMzM/8zMzP/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0 + NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zU1Nf80NDT/CQkJLAAA + AAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/8zMzP/MzMz/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0 + NP8zMzP/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/ERERUwkJCS8KCgowCgoKMAoKCjAKCgowCgoKMAoK + CjAKCgowCgoKMAoKCjAKCgowCgoKMAoKCjAKCgowCgoKMAoKCjAKCgowCgoKMAoKCjAKCgowCgoKMAoK + CjAKCgowAgICCAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/82Njb/GhoafwkJCS8KCgowCgoKMAoK + CjAKCgowCQkJLxQUFGQ1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/BwcHIAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/EhISWgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCzg1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMz + M/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0 + NP8zMzP/CQkJKwAAAAAAAAAAAgICCAkJCSsJCQkrCQkJKwkJCSsJCQkrCQkJKwkJCSsJCQkrCQkJKwkJ + CSsJCQkrCQkJKwkJCSsJCQkrCQkJKwkJCSsEBAQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0 + NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3 + N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAAAAAAAAAACgoKMDQ0NP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMz + M/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zc3N/8XFxd0AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0N + DUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAAAAAAAAAACgoKMTU1Nf80NDT/NDQ0/zQ0 + NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zg4OP8XFxd0AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAAAAAAAAAACgoKMDQ0 + NP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zc3 + N/8XFxdzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAA + AAAAAAAACgoKMDQ0NP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMz + M/8zMzP/MzMz/zc3N/8XFxdzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMz + M/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0 + NP8zMzP/CQkJKwAAAAAAAAAACgoKMDQ0NP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMz + M/8zMzP/MzMz/zMzM/8zMzP/MzMz/zc3N/8XFxdzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0 + NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3 + N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAAAAAAAAAACgoKMDQ0NP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMz + M/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zc3N/8XFxdzAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0N + DUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAAAAAAAAAACgoKMjY2Nv81NTX/NTU1/zU1 + Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zU1Nf81NTX/NTU1/zk5Of8YGBh4AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAAAAAAAAAAAwMDDA0N + DUENDQ1BDQ0NQQ0NDUENDQ1BDQ0NQQ0NDUENDQ1BDQ0NQQ0NDUENDQ1BDQ0NQQ0NDUENDQ1BDQ0NQQ4O + DkEGBgYdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0NP8zMzP/CQkJKwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMz + M/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDUE1NTX/MzMz/zc3N/8cHByKNzc3/zQ0 + NP8zMzP/CAgIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0 + NP8zMzP/MzMz/zMzM/83Nzf/ExMTXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDDo1NTX/MzMz/zc3 + N/8cHByKNzc3/zQ0NP8zMzP/Dg4OQgUFBRwGBgYcBgYGHAYGBhwGBgYcBgYGHAYGBhwGBgYcBgYGHAYG + BhwGBgYcBgYGHAYGBhwGBgYcBgYGHAYGBhwGBgYcBgYGHAYGBhwGBgYcBgYGHAYGBhwGBgYcAQEBBQAA + AAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FxcXcwUFBRsGBgYcBgYGHAYGBhwGBgYcBQUFGxER + EVY1NTX/MzMz/zc3N/8cHByKNzc3/zMzM/8zMzP/MjIy+DAwMPYwMDD3MDAw9zAwMPcwMDD3MDAw9zAw + MPcwMDD3MDAw9zAwMPcwMDD3MDAw9zAwMPcwMDD3MDAw9zAwMPcwMDD3MDAw9zAwMPcwMDD3MDAw9zEx + MfcwMDD3CQkJKgAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/8zMzP/MTEx+jAwMPYwMDD3MDAw9zAw + MPcwMDD3MDAw9jIyMvkzMzP/MzMz/zc3N/8dHR2PNzc3/zMzM/8zMzP/NDQ0/zQ0NP80NDT/NDQ0/zQ0 + NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0 + NP80NDT/NDQ0/zU1Nf80NDT/CQkJLAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/8zMzP/NDQ0/zQ0 + NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8zMzP/MzMz/zg4OP8SEhJZOTk5/zc3N/83Nzf/Nzc3/zc3 + N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3 + N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zg4OP83Nzf/CgoKLgAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMz + M/8zMzP/NTU1/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/ODg4/zc3N/8AAAAAFBQUZCEh + IZ0gICCgICAgoCAgIKAgICCgICAgoCAgIKAgICCgICAgoCAgIKAgICCgICAgoCAgIKAgICCgICAgoCAg + IKAgICCgICAgoCAgIKAgICCgICAgoCAgIKAgICCgICAgoCEhIaAgICCgBgYGGwAAAAAAAAAACgoKMzQ0 + NP8zMzP/MzMz/zMzM/80NDT/JiYmxCAgIJ4gICCgICAgoCAgIKAgICCgICAgoCAgIKAgICCgISEhnRER + EVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/EhISVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKMzQ0NP8zMzP/MzMz/zMzM/83Nzf/FBQUYgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkJLTQ0NP8zMzP/MzMz/zMz + M/83Nzf/ExMTXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PTTY2 + Nv8zMzP/MzMz/zMzM/83Nzf/GRkZggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAJCQkvLS0t3jU1Nf8zMzP/MzMz/zMzM/80NDT/MjIy8xAQEE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDEAUF + BRgICAgqERERUyAgIJ8zMzP4NTU1/zMzM/8zMzP/MzMz/zMzM/8zMzP/NDQ0/zU1Nf8jIyOxFBQUYAoK + CjAFBQUaBAQEEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0N + DUAqKirILy8v7DExMfMzMzP/NjY2/zc3N/80NDT/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMz + M/82Njb/Nzc3/zQ0NP8wMDD1Ly8v7SsrK9UUFBRjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAABgYGHTIyMvU3Nzf/NDQ0/zQ0NP80NDT/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/NTU1/zMz + M/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/80NDT/NDQ0/zY2Nv83Nzf/DQ0NQwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAExMTYTg4OP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zQ0 + NP82Njb/LCws4jU1Nf81NTX/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/84ODj/Hh4elwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PSTg4OP8zMzP/MzMz/zMzM/8zMzP/MzMz/zQ0 + NP81NTX/ODg4/zMzM/gcHByIAwMDDRQUFGUwMDDpODg4/zY2Nv80NDT/MzMz/zMzM/8zMzP/MzMz/zMz + M/85OTn/GRkZfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBBSMjI7Q5OTn/Nzc3/zc3 + N/83Nzf/NjY2/zQ0NP8sLCzXHR0diwgICCgAAAAAAAAAAAAAAAAEBAQWGRkZdyoqKsozMzP5NjY2/zc3 + N/83Nzf/Nzc3/zk5Of8rKyvZBAQEFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAITExNdHBwchhoaGoAWFhZuEBAQTwgICCgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAHBwcfDw8PSRUVFWgZGRl9HBwciBcXF20DAwMRAAAAAAAAAAD///wAcAEAAP///AAAAQAA///8AAAB + AAD///wAAAEAAP///gAAAwAA////AAAHAAD////8Af8AAP////4D/wAA/////gP/AAD////+A/8AAP// + //4D/wAA/////gP/AACAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAB////gPw + AAAH///+A/AAAAYAAH4D8AAABgAAfgPwAAAGAAB+A/AAAAYAAH4D8AAABgAAfgPwAAAGAAB+A/AAAAYA + AH4D8AAABgAAfgPwAAAGAAB+A/AAAAf///4D8AAAB////gPwAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAA + AAAAAAAGAAAAAIAAAAYAAAAA/////gP/AAD////+A/8AAP////4D/wAA/////gP/AAD////+A/8AAP// + //wB/wAA////gAAPAAD///4AAAMAAP///AAAAQAA///8AAABAAD///wAAAEAAP///ABwAQAA///+Af4D + AAA= + + + \ No newline at end of file diff --git a/BFR.WinApp/Program.cs b/BFR.WinApp/Program.cs new file mode 100644 index 0000000..83b4e2d --- /dev/null +++ b/BFR.WinApp/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace BFR.WinApp +{ + static class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FrmMain()); + } + } +} diff --git a/BFR.WinApp/Properties/AssemblyInfo.cs b/BFR.WinApp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..459ccaa --- /dev/null +++ b/BFR.WinApp/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的常规信息通过以下 +// 特性集控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("Batch File Rename")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("seay.me")] +[assembly: AssemblyProduct("BFR")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 使此程序集中的类型 +// 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, +// 则将该类型上的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("1da986ab-493c-4054-8a70-36d0d5ec2dd4")] + +// 程序集的版本信息由下面四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, +// 方法是按如下所示使用“*”: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BFR.WinApp/Properties/Resources.Designer.cs b/BFR.WinApp/Properties/Resources.Designer.cs new file mode 100644 index 0000000..581c323 --- /dev/null +++ b/BFR.WinApp/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace BFR.WinApp.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BFR.WinApp.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 使用此强类型资源类,为所有资源查找 + /// 重写当前线程的 CurrentUICulture 属性。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/BFR.WinApp/Properties/Resources.resx b/BFR.WinApp/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/BFR.WinApp/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/BFR.WinApp/Properties/Settings.Designer.cs b/BFR.WinApp/Properties/Settings.Designer.cs new file mode 100644 index 0000000..5815c91 --- /dev/null +++ b/BFR.WinApp/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace BFR.WinApp.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/BFR.WinApp/Properties/Settings.settings b/BFR.WinApp/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/BFR.WinApp/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/BFR.sln b/BFR.sln new file mode 100644 index 0000000..b0bf140 --- /dev/null +++ b/BFR.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BFR.WinApp", "BFR.WinApp\BFR.WinApp.csproj", "{4845D6A1-C7B1-4342-8D2F-432C254C12B0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4845D6A1-C7B1-4342-8D2F-432C254C12B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4845D6A1-C7B1-4342-8D2F-432C254C12B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4845D6A1-C7B1-4342-8D2F-432C254C12B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4845D6A1-C7B1-4342-8D2F-432C254C12B0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2760736 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Seay + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 91ee9e9..8468540 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# BFR +# BFR(Batch File Rename) 批量文件重命名