commit 0d941aa8880b3fe78b16fb5b131f6768d341a621 Author: dong <1278815766@qq.com> Date: Thu Apr 10 23:08:20 2025 +0800 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b43cbda --- /dev/null +++ b/.gitignore @@ -0,0 +1,91 @@ +/.github +/.idea +/.vs +/.vscode +/Login/.idea +/Login/.vs +/KeyAuth-Service/.idea +/Admin-Keyauth/.vs +/Admin-Keyauth/.idea + +#环境变量 +.env + +#构建删除 +/Server/Run/*.exe +/KeyAuth-Service/Run/*.exe + +# 忽略所有obj +**/obj/** + +# 已构建程序不上传 +*.exe +/Server/Run/*.exe +/KeyAuth-Service/Run/*.exe + +# IDEA +Server/.idea + +[Tt]humbs.db +*.DS_Store + +#Visual Studio files +*.[Oo]bj +*.user +*.aps +*.pch +*.vspscc +*.vssscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.[Cc]ache +*.ilk +*.log +*.lib +*.sbr +*.sdf +*.opensdf +*.unsuccessfulbuild +ipch/ +obj/ +[Bb]in +[Dd]ebug*/ +[Rr]elease*/ +Ankh.NoLoad + +#MonoDevelop +*.pidb +*.userprefs + +#Tooling +_ReSharper*/ +*.resharper +[Tt]est[Rr]esult* +*.sass-cache + +#Project files +[Bb]uild/ + +#Subversion files +.svn + +# Office Temp Files +~$* + +#NuGet +packages/ + +#ncrunch +*ncrunch* +*crunch*.local.xml + +# visual studio database projects +*.dbmdl + +#Test files +*.testsettings diff --git a/App.config b/App.config new file mode 100644 index 0000000..5754728 --- /dev/null +++ b/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Form1.Designer.cs b/Form1.Designer.cs new file mode 100644 index 0000000..8aa9cc8 --- /dev/null +++ b/Form1.Designer.cs @@ -0,0 +1,205 @@ +namespace MD5Create +{ + partial class MD5Create + { + /// + /// 必需的设计器变量。 + /// + 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() + { + this.Path_Text = new System.Windows.Forms.Label(); + this.Path1_Box = new System.Windows.Forms.TextBox(); + this.Choose1_Button = new System.Windows.Forms.Button(); + this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.Start_Button = new System.Windows.Forms.Button(); + this.Process_Text = new System.Windows.Forms.Label(); + this.Process_Box = new System.Windows.Forms.RichTextBox(); + this.Exit_Button = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // Path_Text + // + this.Path_Text.AutoSize = true; + this.Path_Text.Location = new System.Drawing.Point(12, 15); + this.Path_Text.Name = "Path_Text"; + this.Path_Text.Size = new System.Drawing.Size(35, 12); + this.Path_Text.TabIndex = 0; + this.Path_Text.Text = "路径:"; + // + // Path1_Box + // + this.Path1_Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Path1_Box.Location = new System.Drawing.Point(49, 12); + this.Path1_Box.Name = "Path1_Box"; + this.Path1_Box.ReadOnly = true; + this.Path1_Box.Size = new System.Drawing.Size(319, 21); + this.Path1_Box.TabIndex = 1; + // + // Choose1_Button + // + this.Choose1_Button.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.Choose1_Button.Location = new System.Drawing.Point(374, 12); + this.Choose1_Button.Name = "Choose1_Button"; + this.Choose1_Button.Size = new System.Drawing.Size(32, 21); + this.Choose1_Button.TabIndex = 2; + this.Choose1_Button.Text = "..."; + this.Choose1_Button.UseVisualStyleBackColor = true; + this.Choose1_Button.Click += new System.EventHandler(this.Choose1_Button_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 53); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(0, 12); + this.label1.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 79); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(35, 12); + this.label2.TabIndex = 4; + this.label2.Text = "进度:"; + // + // progressBar1 + // + this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar1.Location = new System.Drawing.Point(49, 76); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(357, 23); + this.progressBar1.TabIndex = 5; + // + // Start_Button + // + this.Start_Button.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.Start_Button.Location = new System.Drawing.Point(12, 322); + this.Start_Button.Name = "Start_Button"; + this.Start_Button.Size = new System.Drawing.Size(75, 23); + this.Start_Button.TabIndex = 6; + this.Start_Button.Text = "开始"; + this.Start_Button.UseVisualStyleBackColor = true; + this.Start_Button.Click += new System.EventHandler(this.Start_Button_Click); + // + // Process_Text + // + this.Process_Text.AutoSize = true; + this.Process_Text.Location = new System.Drawing.Point(12, 47); + this.Process_Text.Name = "Process_Text"; + this.Process_Text.Size = new System.Drawing.Size(35, 12); + this.Process_Text.TabIndex = 7; + this.Process_Text.Text = "版本:"; + // + // Process_Box + // + this.Process_Box.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Process_Box.Location = new System.Drawing.Point(49, 111); + this.Process_Box.Name = "Process_Box"; + this.Process_Box.Size = new System.Drawing.Size(357, 203); + this.Process_Box.TabIndex = 8; + this.Process_Box.Text = ""; + // + // Exit_Button + // + this.Exit_Button.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.Exit_Button.Location = new System.Drawing.Point(331, 322); + this.Exit_Button.Name = "Exit_Button"; + this.Exit_Button.Size = new System.Drawing.Size(75, 23); + this.Exit_Button.TabIndex = 9; + this.Exit_Button.Text = "退出"; + this.Exit_Button.UseVisualStyleBackColor = true; + this.Exit_Button.Click += new System.EventHandler(this.Exit_Button_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(12, 111); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(35, 12); + this.label3.TabIndex = 10; + this.label3.Text = "执行:"; + // + // textBox1 + // + this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox1.ForeColor = System.Drawing.SystemColors.WindowText; + this.textBox1.Location = new System.Drawing.Point(49, 42); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(357, 21); + this.textBox1.TabIndex = 11; + this.textBox1.Text = "1.0.0"; + // + // MD5Create + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(418, 357); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label3); + this.Controls.Add(this.Exit_Button); + this.Controls.Add(this.Process_Box); + this.Controls.Add(this.Process_Text); + this.Controls.Add(this.Start_Button); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.Choose1_Button); + this.Controls.Add(this.Path1_Box); + this.Controls.Add(this.Path_Text); + this.Name = "MD5Create"; + this.Text = "MD5Create"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label Path_Text; + private System.Windows.Forms.TextBox Path1_Box; + private System.Windows.Forms.Button Choose1_Button; + private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.Button Start_Button; + private System.Windows.Forms.Label Process_Text; + private System.Windows.Forms.RichTextBox Process_Box; + private System.Windows.Forms.Button Exit_Button; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox textBox1; + } +} + diff --git a/Form1.cs b/Form1.cs new file mode 100644 index 0000000..357ed88 --- /dev/null +++ b/Form1.cs @@ -0,0 +1,219 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Xml; +using Newtonsoft.Json; + +namespace MD5Create +{ + public partial class MD5Create : Form + { + public MD5Create() + { + InitializeComponent(); + // Initialize progress bar + progressBar1.Minimum = 0; + progressBar1.Maximum = 100; + progressBar1.Value = 0; + progressBar1.Step = 1; + } + + private void Start_Button_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(Path1_Box.Text)) + { + MessageBox.Show("请先选择目录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + if (string.IsNullOrWhiteSpace(textBox1.Text)) + { + MessageBox.Show("请输入版本号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + // Reset progress bar + progressBar1.Value = 0; + + GenerateMD5Json(Path1_Box.Text); + } + + private void Choose1_Button_Click(object sender, EventArgs e) + { + folderBrowserDialog1.Description = "请选择文件夹"; + folderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer; + folderBrowserDialog1.ShowNewFolderButton = true; + if (Path1_Box.Text.Length > 0) folderBrowserDialog1.SelectedPath = Path1_Box.Text; + if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) + { + Path1_Box.Text = folderBrowserDialog1.SelectedPath; + } + } + + private void Exit_Button_Click(object sender, EventArgs e) + { + this.Close(); + } + + // 计算 MD5 的值 + private string MD5Generation(string filePath) + { + using (var md5 = MD5.Create()) + using (var stream = File.OpenRead(filePath)) + { + byte[] hash = md5.ComputeHash(stream); + return BitConverter.ToString(hash).Replace("-", "").ToLower(); + } + } + + // 获取目录中文件总数(用于进度计算) + private int GetTotalFileCount(string directoryPath, string excludeFolder) + { + int count = Directory.GetFiles(directoryPath).Length; + + foreach (var dir in Directory.GetDirectories(directoryPath)) + { + if (dir.Equals(excludeFolder, StringComparison.OrdinalIgnoreCase)) + continue; + + count += GetTotalFileCount(dir, excludeFolder); + } + return count; + } + + // 生成目录结构的 json 表示 + private Dictionary GenerateDirectoryJson(string directoryPath, string rootPath, + int totalFiles, ref int processedFiles, string excludeFolder) + { + var result = new Dictionary(); + + // 处理当前目录文件 + foreach (var file in Directory.GetFiles(directoryPath)) + { + string fileName = Path.GetFileName(file); + result[fileName] = MD5Generation(file); + + // 更新进度条 + processedFiles++; + int progress = (int)((double)processedFiles / totalFiles * 100); + progressBar1.Invoke((MethodInvoker)(() => + { + progressBar1.Value = Math.Min(progress, progressBar1.Maximum); + })); + + // 显示处理路径 + string relativePath = GetRelativePath(file, rootPath); + Process_Box.Invoke((MethodInvoker)(() => + { + Process_Box.AppendText($".\\{relativePath}{Environment.NewLine}"); + })); + } + + // 递归处理子目录(自动跳过排除文件夹) + foreach (var dir in Directory.GetDirectories(directoryPath)) + { + if (Path.GetFullPath(dir).Equals(Path.GetFullPath(excludeFolder), StringComparison.OrdinalIgnoreCase)) + continue; + + string dirName = Path.GetFileName(dir); + result[dirName] = GenerateDirectoryJson(dir, rootPath, totalFiles, + ref processedFiles, excludeFolder); + } + + return result; + } + + // 获取相对路径 + private string GetRelativePath(string fullPath, string basePath) + { + if (!basePath.EndsWith(Path.DirectorySeparatorChar.ToString())) + basePath += Path.DirectorySeparatorChar; + + Uri baseUri = new Uri(basePath); + Uri fullUri = new Uri(fullPath); + return Uri.UnescapeDataString(baseUri.MakeRelativeUri(fullUri).ToString() + .Replace('/', Path.DirectorySeparatorChar)); + } + + // 生成 json 文件 + private void GenerateMD5Json(string rootDirectory) + { + if (!Directory.Exists(rootDirectory)) + { + MessageBox.Show("指定的目录不存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + try + { + Process_Box.Clear(); + progressBar1.Value = 0; + Application.DoEvents(); // 让UI立即更新 + + string md5FolderPath = Path.Combine(rootDirectory, "MD5"); + Directory.CreateDirectory(md5FolderPath); + + int totalFiles = GetTotalFileCount(rootDirectory, md5FolderPath); + int processedFiles = 0; + + // 如果文件数量为0,直接设置进度为100% + if (totalFiles == 0) + { + progressBar1.Value = 100; + Process_Box.AppendText("没有找到任何文件\n"); + return; + } + + var directoryStructure = GenerateDirectoryJson(rootDirectory, rootDirectory, totalFiles, ref processedFiles, md5FolderPath); + + // 创建包含版本号的新结构 + var versionedStructure = new Dictionary + { + { "version", textBox1.Text.Trim() }, + { "data", directoryStructure } + }; + + // 序列化和保存JSON + string json = JsonConvert.SerializeObject(versionedStructure, Newtonsoft.Json.Formatting.Indented); + string jsonMD5 = CalculateMD5FromString(json); + string outputPath = Path.Combine(md5FolderPath, $"{jsonMD5}.json"); + File.WriteAllText(outputPath, json); + + // 最终更新 + progressBar1.Value = 100; + Process_Box.AppendText($"\nmd5.json文件已生成在:{outputPath}\n"); + Process_Box.AppendText($"JSON内容MD5校验值:{jsonMD5}"); + Process_Box.ScrollToCaret(); + } + catch (Exception ex) + { + MessageBox.Show($"生成JSON文件时出错:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + // 计算字符串的MD5值 + private string CalculateMD5FromString(string input) + { + using (var md5 = MD5.Create()) + { + byte[] inputBytes = Encoding.UTF8.GetBytes(input); + byte[] hashBytes = md5.ComputeHash(inputBytes); + + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < hashBytes.Length; i++) + { + sb.Append(hashBytes[i].ToString("x2")); // 使用小写十六进制格式 + } + return sb.ToString(); + } + } + } +} \ No newline at end of file diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..913dd0d --- /dev/null +++ b/Form1.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/MD5Create.csproj b/MD5Create.csproj new file mode 100644 index 0000000..20ad39e --- /dev/null +++ b/MD5Create.csproj @@ -0,0 +1,87 @@ + + + + + Debug + AnyCPU + {353C07CE-BA22-44F3-8816-5F97E2B9DDE0} + WinExe + MD5Create + MD5Create + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/MD5Create.sln b/MD5Create.sln new file mode 100644 index 0000000..f1e77a9 --- /dev/null +++ b/MD5Create.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.35825.156 d17.13 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MD5Create", "MD5Create.csproj", "{353C07CE-BA22-44F3-8816-5F97E2B9DDE0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {353C07CE-BA22-44F3-8816-5F97E2B9DDE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {353C07CE-BA22-44F3-8816-5F97E2B9DDE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {353C07CE-BA22-44F3-8816-5F97E2B9DDE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {353C07CE-BA22-44F3-8816-5F97E2B9DDE0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {25B0F992-2814-48A9-9F14-6F5D10FF4855} + EndGlobalSection +EndGlobal diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..4491413 --- /dev/null +++ b/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace MD5Create +{ + static class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MD5Create()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7a4fb7b --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("MD5Create")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MD5Create")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("353c07ce-ba22-44f3-8816-5f97e2b9dde0")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3210cd4 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本: 4.0.30319.42000 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace MD5Create.Properties +{ + + + /// + /// 强类型资源类,用于查找本地化字符串等。 + /// + // 此类是由 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 ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MD5Create.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/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/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/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..3c6496a --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MD5Create.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..d9dfe04 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Create md5.json \ No newline at end of file diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..fef83be --- /dev/null +++ b/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file