Browse Source

修改代码声明注释信息,优化加密头部的固定长度为可变长度

yuzhengyang 8 years ago
parent
commit
b346f309e8

+ 44 - 66
Fork.Net/Fork.Net.sln

@@ -21,24 +21,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Version.Update", "Version.U
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Fork.Net.Tools", "Fork.Net.Tools", "{F222E566-DA0C-443C-BB9F-80536F02DB36}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Y.Utils.Net20", "Y.Utils.Net20\Y.Utils.Net20.csproj", "{EE89927C-03A6-4E57-B69A-DE71B101FCA7}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Fork.Net.Skin", "Fork.Net.Skin", "{BF970206-CAA8-46C3-9F1A-46BB82D51DC4}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Y.Controls.Net20", "Y.Controls.Net20\Y.Controls.Net20.csproj", "{490E9BE8-814D-4617-8271-41A73C373F7D}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Y.DB", "Y.DB\Y.DB.csproj", "{3ECA2CC6-55C2-433F-A617-A7376E455F7C}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Waka.Lego", "Waka.Lego", "{0DB08A6B-6960-48CD-B23B-6428F47FDA60}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego", "Waka.Lego\Waka.Lego.csproj", "{7ACB538D-2A75-4602-9422-1C5E72AB840A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego.Baidu", "Waka.Lego.Baidu\Waka.Lego.Baidu.csproj", "{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego.Music", "Waka.Lego.Music\Waka.Lego.Music.csproj", "{B4E47708-0D92-4308-B605-1B9657B308CF}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego.Icon", "Waka.Lego.Icon\Waka.Lego.Icon.csproj", "{328B6806-CC39-4232-AE51-13AABF9A583B}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{A89FC45A-A907-4487-8719-114530A62684}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpSniffer", "SharpSniffer\SharpSniffer.csproj", "{548C259E-A5E8-42CC-BCFF-DAC47CC36AF3}"
@@ -59,6 +47,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oreo.PCMonitor", "Oreo.Plug
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oreo.PCMonitorWF", "Oreo.Plugins\Oreo.PCMonitorWF\Oreo.PCMonitorWF.csproj", "{1CEE1934-4969-4FE2-9DB0-C98633313DAF}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego", "Waka.Plugin\Waka.Lego\Waka.Lego.csproj", "{7ACB538D-2A75-4602-9422-1C5E72AB840A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego.Baidu", "Waka.Plugin\Waka.Lego.Baidu\Waka.Lego.Baidu.csproj", "{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego.Icon", "Waka.Plugin\Waka.Lego.Icon\Waka.Lego.Icon.csproj", "{328B6806-CC39-4232-AE51-13AABF9A583B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waka.Lego.Music", "Waka.Plugin\Waka.Lego.Music\Waka.Lego.Music.csproj", "{B4E47708-0D92-4308-B605-1B9657B308CF}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -123,22 +119,6 @@ Global
 		{0DFAC9FC-9D48-4DCF-AE72-8FB1CA70A06E}.Release|Any CPU.Build.0 = Release|Any CPU
 		{0DFAC9FC-9D48-4DCF-AE72-8FB1CA70A06E}.Release|x86.ActiveCfg = Release|Any CPU
 		{0DFAC9FC-9D48-4DCF-AE72-8FB1CA70A06E}.Release|x86.Build.0 = Release|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Debug|x86.Build.0 = Debug|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Release|Any CPU.Build.0 = Release|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Release|x86.ActiveCfg = Release|Any CPU
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7}.Release|x86.Build.0 = Release|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Debug|x86.Build.0 = Debug|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Release|x86.ActiveCfg = Release|Any CPU
-		{490E9BE8-814D-4617-8271-41A73C373F7D}.Release|x86.Build.0 = Release|Any CPU
 		{3ECA2CC6-55C2-433F-A617-A7376E455F7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{3ECA2CC6-55C2-433F-A617-A7376E455F7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3ECA2CC6-55C2-433F-A617-A7376E455F7C}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -147,38 +127,6 @@ Global
 		{3ECA2CC6-55C2-433F-A617-A7376E455F7C}.Release|Any CPU.Build.0 = Release|Any CPU
 		{3ECA2CC6-55C2-433F-A617-A7376E455F7C}.Release|x86.ActiveCfg = Release|Any CPU
 		{3ECA2CC6-55C2-433F-A617-A7376E455F7C}.Release|x86.Build.0 = Release|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|x86.Build.0 = Debug|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|x86.ActiveCfg = Release|Any CPU
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|x86.Build.0 = Release|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|x86.Build.0 = Debug|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|x86.ActiveCfg = Release|Any CPU
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|x86.Build.0 = Release|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|x86.Build.0 = Debug|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|x86.ActiveCfg = Release|Any CPU
-		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|x86.Build.0 = Release|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|x86.Build.0 = Debug|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|x86.ActiveCfg = Release|Any CPU
-		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|x86.Build.0 = Release|Any CPU
 		{548C259E-A5E8-42CC-BCFF-DAC47CC36AF3}.Debug|Any CPU.ActiveCfg = Debug|x86
 		{548C259E-A5E8-42CC-BCFF-DAC47CC36AF3}.Debug|x86.ActiveCfg = Debug|x86
 		{548C259E-A5E8-42CC-BCFF-DAC47CC36AF3}.Debug|x86.Build.0 = Debug|x86
@@ -241,6 +189,38 @@ Global
 		{1CEE1934-4969-4FE2-9DB0-C98633313DAF}.Release|Any CPU.Build.0 = Release|Any CPU
 		{1CEE1934-4969-4FE2-9DB0-C98633313DAF}.Release|x86.ActiveCfg = Release|Any CPU
 		{1CEE1934-4969-4FE2-9DB0-C98633313DAF}.Release|x86.Build.0 = Release|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Debug|x86.Build.0 = Debug|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|x86.ActiveCfg = Release|Any CPU
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A}.Release|x86.Build.0 = Release|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Debug|x86.Build.0 = Debug|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|x86.ActiveCfg = Release|Any CPU
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964}.Release|x86.Build.0 = Release|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Debug|x86.Build.0 = Debug|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|x86.ActiveCfg = Release|Any CPU
+		{328B6806-CC39-4232-AE51-13AABF9A583B}.Release|x86.Build.0 = Release|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Debug|x86.Build.0 = Debug|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|x86.ActiveCfg = Release|Any CPU
+		{B4E47708-0D92-4308-B605-1B9657B308CF}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -252,13 +232,7 @@ Global
 		{E1897235-0E04-420D-B6D5-29BEA14DA1FD} = {A89FC45A-A907-4487-8719-114530A62684}
 		{10F1E19E-AEBA-4835-9A58-F02BEC46FF4B} = {F32378B4-3DDB-491A-8485-20634188C0FD}
 		{0DFAC9FC-9D48-4DCF-AE72-8FB1CA70A06E} = {F32378B4-3DDB-491A-8485-20634188C0FD}
-		{EE89927C-03A6-4E57-B69A-DE71B101FCA7} = {F222E566-DA0C-443C-BB9F-80536F02DB36}
-		{490E9BE8-814D-4617-8271-41A73C373F7D} = {BF970206-CAA8-46C3-9F1A-46BB82D51DC4}
 		{3ECA2CC6-55C2-433F-A617-A7376E455F7C} = {F222E566-DA0C-443C-BB9F-80536F02DB36}
-		{7ACB538D-2A75-4602-9422-1C5E72AB840A} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
-		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
-		{B4E47708-0D92-4308-B605-1B9657B308CF} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
-		{328B6806-CC39-4232-AE51-13AABF9A583B} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
 		{548C259E-A5E8-42CC-BCFF-DAC47CC36AF3} = {A89FC45A-A907-4487-8719-114530A62684}
 		{82B0FE94-1339-42C8-953F-E400CF9F1FF2} = {A89FC45A-A907-4487-8719-114530A62684}
 		{9B9BF25E-0ECD-4923-9546-4FDAEF685092} = {A89FC45A-A907-4487-8719-114530A62684}
@@ -267,5 +241,9 @@ Global
 		{62A9E0A6-2B00-4E44-8058-3611AF55280C} = {E53B3662-A5FD-4D4C-AFF6-1DC9FF24EA16}
 		{270280EA-3CED-4BC5-A8E8-CACE17445F88} = {E53B3662-A5FD-4D4C-AFF6-1DC9FF24EA16}
 		{1CEE1934-4969-4FE2-9DB0-C98633313DAF} = {E53B3662-A5FD-4D4C-AFF6-1DC9FF24EA16}
+		{7ACB538D-2A75-4602-9422-1C5E72AB840A} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
+		{5BD7BF2A-5FFA-45CB-AA5D-25345C77D964} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
+		{328B6806-CC39-4232-AE51-13AABF9A583B} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
+		{B4E47708-0D92-4308-B605-1B9657B308CF} = {0DB08A6B-6960-48CD-B23B-6428F47FDA60}
 	EndGlobalSection
 EndGlobal

+ 18 - 5
Fork.Net/Oreo.Plugins/Oreo.FileMan/Views/MainForm.cs

@@ -37,9 +37,10 @@ namespace Oreo.FileMan.Views
 
                     if (!File.Exists(newfile))
                     {
-                        if (FileEncryptTool.Encrypt(file, newfile, pwd) > 0)
+                        int spendtime = 0;
+                        if ((spendtime = FileEncryptTool.Encrypt(file, newfile, pwd)) > 0)
                         {
-                            MessageBox.Show("恭喜你,加密成功。", "加密成功");
+                            MessageBox.Show("恭喜你,加密成功。共耗时:" + spendtime, "加密成功");
                         }
                     }
                     else
@@ -52,7 +53,7 @@ namespace Oreo.FileMan.Views
 
         private void BtFileDecrypt_Click(object sender, EventArgs e)
         {
-            string pwd = "1234567890121";
+            string pwd = "123456789012";
             string[] fileInfo = new string[128];
             OpenFileDialog fileDialog = new OpenFileDialog();
             fileDialog.Title = "请选择要解密的文件";
@@ -65,9 +66,10 @@ namespace Oreo.FileMan.Views
                     string newfile = file.Substring(0, file.Length - ".fmk".Length);
                     if (!File.Exists(newfile))
                     {
-                        if (FileEncryptTool.Decrypt(file, newfile, pwd) > 0)
+                        int spendtime = 0;
+                        if ((spendtime = FileEncryptTool.Decrypt(file, newfile, pwd)) > 0)
                         {
-                            MessageBox.Show("恭喜你,解密成功。", "解密成功");
+                            MessageBox.Show("恭喜你,解密成功。共耗时:" + spendtime, "解密成功");
                         }
                     }
                     else
@@ -80,6 +82,17 @@ namespace Oreo.FileMan.Views
 
         private void MainForm_Load(object sender, EventArgs e)
         {
+            ////打包
+            //Dictionary<string, object> dicToPack = new Dictionary<string, object>();
+            ////dicToPack.Add("key1", Image.FromFile(@"D:\temp\测试打包\1511925984.jpeg"));
+            ////dicToPack.Add("key2", Image.FromFile(@"D:\temp\测试打包\1555714799.jpeg"));
+            //dicToPack.Add("key1", FilePackageTool.FileDeSerialize(@"D:\temp\测试打包\新建文件夹\新建文本文档 1.txt"));
+            //dicToPack.Add("key2", FilePackageTool.FileDeSerialize(@"D:\temp\测试打包\新建文件夹\新建文本文档 2.txt"));
+            //dicToPack.Add("key3", "hello world");
+            //FilePackageTool.ResourcePackage(dicToPack, @"D:\temp\测试打包\pkg1.pkg");
+            ////解包
+            ////Dictionary<string, object> dicRcv = FilePackageTool.ResourceUnpack(@"D:\temp\测试打包\pkg1.pkg");
         }
+
     }
 }

+ 1 - 1
Fork.Net/Waka.Plugin/Waka.Lego/Waka.Lego.csproj

@@ -100,7 +100,7 @@
     <None Include="App.config" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\Y.Utils\Y.Utils.csproj">
+    <ProjectReference Include="..\..\Y.Utils\Y.Utils.csproj">
       <Project>{5b8eeec7-aeb5-407d-9dc1-1c59e53f78d5}</Project>
       <Name>Y.Utils</Name>
     </ProjectReference>

+ 44 - 9
Fork.Net/Y.Utils/DataUtils/UnitConvertUtils/ByteConvertUtils.cs

@@ -1,13 +1,26 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+//************************************************************************
+//      https://github.com/yuzhengyang
+//      author:     yuzhengyang
+//      date:       2017.5.18 - 2017.6.10
+//      desc:       计算机字节单位转换工具
+//      Copyright (c) yuzhengyang. All rights reserved.
+//************************************************************************
+
+using System;
 
 namespace Y.Utils.DataUtils.UnitConvertUtils
 {
+    /// <summary>
+    /// 计算机字节单位转换工具
+    /// </summary>
     public class ByteConvertTool
     {
+        /// <summary>
+        /// 自动格式化字节单位
+        /// </summary>
+        /// <param name="size"></param>
+        /// <param name="digits"></param>
+        /// <returns></returns>
         public static string Fmt(long size, int digits = 2)
         {
             string rs = "";
@@ -29,6 +42,12 @@ namespace Y.Utils.DataUtils.UnitConvertUtils
             }
             return rs;
         }
+        /// <summary>
+        /// 自动格式化字节单位
+        /// </summary>
+        /// <param name="size"></param>
+        /// <param name="digits"></param>
+        /// <returns></returns>
         public static string Fmt(double size, int digits = 2)
         {
             string rs = "";
@@ -50,7 +69,14 @@ namespace Y.Utils.DataUtils.UnitConvertUtils
             }
             return rs;
         }
-        public static string Cvt(long size, string unit, int digits = 2)
+        /// <summary>
+        /// 根据单位换算
+        /// </summary>
+        /// <param name="size"></param>
+        /// <param name="unit"></param>
+        /// <param name="digits"></param>
+        /// <returns></returns>
+        public static double Cvt(long size, string unit, int digits = 2)
         {
             double rs = 0;
             switch (unit)
@@ -59,10 +85,18 @@ namespace Y.Utils.DataUtils.UnitConvertUtils
                 case "KB": rs = (double)size / 1024; break;
                 case "MB": rs = (double)size / 1024 / 1024; break;
                 case "GB": rs = (double)size / 1024 / 1024 / 1024; break;
+                default: rs = size; break;
             }
-            return Math.Round(rs, digits).ToString();
+            return Math.Round(rs, digits);
         }
-        public static string Cvt(double size, string unit, int digits = 2)
+        /// <summary>
+        /// 根据单位换算
+        /// </summary>
+        /// <param name="size"></param>
+        /// <param name="unit"></param>
+        /// <param name="digits"></param>
+        /// <returns></returns>
+        public static double Cvt(double size, string unit, int digits = 2)
         {
             double rs = 0;
             switch (unit)
@@ -71,8 +105,9 @@ namespace Y.Utils.DataUtils.UnitConvertUtils
                 case "KB": rs = size / 1024; break;
                 case "MB": rs = size / 1024 / 1024; break;
                 case "GB": rs = size / 1024 / 1024 / 1024; break;
+                default: rs = size; break;
             }
-            return Math.Round(rs, digits).ToString();
+            return Math.Round(rs, digits);
         }
     }
 }

+ 9 - 3
Fork.Net/Y.Utils/IOUtils/FileUtils/FileCodeTool.cs

@@ -1,11 +1,17 @@
-//############################################################
+//************************************************************************
 //      https://github.com/yuzhengyang
-//      author:yuzhengyang
-//############################################################
+//      author:     yuzhengyang
+//      date:       2017.3.29 - 2017.6.10
+//      desc:       获取文件特征码
+//      Copyright (c) yuzhengyang. All rights reserved.
+//************************************************************************
 using System;
 
 namespace Y.Utils.IOUtils.FileUtils
 {
+    /// <summary>
+    /// 获取文件特征码(MD5,SHA1)
+    /// </summary>
     public class FileCodeTool
     {
         /// <summary>

+ 50 - 32
Fork.Net/Y.Utils/IOUtils/FileUtils/FileEncryptTool.cs

@@ -1,4 +1,11 @@
-using System;
+//************************************************************************
+//      https://github.com/yuzhengyang
+//      author:     yuzhengyang
+//      date:       2017.6.8 - 2017.6.10
+//      desc:       文件加密工具
+//      Copyright (c) yuzhengyang. All rights reserved.
+//************************************************************************
+using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
@@ -7,29 +14,32 @@ using Y.Utils.DataUtils.EncryptUtils;
 
 namespace Y.Utils.IOUtils.FileUtils
 {
+    /// <summary>
+    /// 文件加密工具
+    /// </summary>
     public class FileEncryptTool
     {
-        private static string FileTypeDesc = "Oreo.FileMan.EncryptFile";
-        private static int FileHeadLength = 256;
+        private static string FileTypeDesc = "FileEncrypt [文件加密]";
         private static int FileBuffer = 1024 * 1024;
 
         /// <summary>
         /// 文件加密
         /// </summary>
-        /// <param name="srcFile"></param>
-        /// <param name="dstFile"></param>
-        /// <param name="password"></param>
+        /// <param name="srcFile">源文件</param>
+        /// <param name="dstFile">目标文件</param>
+        /// <param name="password">加密密码</param>
+        /// <param name="overwrite">是否覆盖已有目标文件</param>
         /// <returns>
         /// 1:操作成功
         /// -11:要加密的文件不存在
         /// -12:加密后的目标文件已存在
         /// -404:未知错误,操作失败
         /// </returns>
-        public static int Encrypt(string srcFile, string dstFile, string password)
+        public static int Encrypt(string srcFile, string dstFile, string password, bool overwrite = true)
         {
-            DateTime begin = DateTime.Now;
+            DateTime beginTime = DateTime.Now;
             if (!File.Exists(srcFile)) return -11; //要加密的文件不存在
-            if (File.Exists(dstFile)) return -12;//加密后的目标文件已存在
+            if (File.Exists(dstFile) && !overwrite) return -12;//加密后的目标文件已存在
 
             string fmtPwd = AesTool.FmtPassword(password);
             string pwdMd5 = MD5Tool.Encrypt(MD5Tool.Encrypt(fmtPwd));
@@ -50,21 +60,16 @@ namespace Y.Utils.IOUtils.FileUtils
                                 Encoding.Default.GetBytes(pwdMd5),
                                 Encoding.Default.GetBytes(DateTime.Now.ToString())
                             };
-                        //写入长度
-                        for (int i = 0; i < FileHeadLength; i++)
+                        //写入头部信息个数
+                        byte[] count = BitConverter.GetBytes(headdata.Count);
+                        fsWrite.Write(count, 0, count.Length);
+                        //写入各部分长度
+                        for (int i = 0; i < headdata.Count; i++)
                         {
-                            if (headdata.Count > i)
-                            {
-                                byte[] length = BitConverter.GetBytes(headdata[i].Length);
-                                fsWrite.Write(length, 0, length.Length);
-                            }
-                            else
-                            {
-                                byte[] length = BitConverter.GetBytes(0);
-                                fsWrite.Write(length, 0, length.Length);
-                            }
+                            byte[] length = BitConverter.GetBytes(headdata[i].Length);
+                            fsWrite.Write(length, 0, length.Length);
                         }
-                        //写入数据
+                        //写入各部分数据
                         for (int i = 0; i < headdata.Count; i++)
                         {
                             fsWrite.Write(headdata[i], 0, headdata[i].Length);
@@ -88,10 +93,12 @@ namespace Y.Utils.IOUtils.FileUtils
                                 fsWrite.Write(enbyte, 0, enbyte.Length);
                             }
                         }
-                        return 1;//操作成功
+                        return (int)Math.Ceiling((DateTime.Now - beginTime).TotalSeconds);//操作成功
                     }
                     catch (Exception e) { }
+                    fsWrite.Close();
                 }
+                fsRead.Close();
                 //加密失败后,删除加密的文件
                 try { File.Delete(dstFile); } catch (Exception e) { }
             }
@@ -100,20 +107,23 @@ namespace Y.Utils.IOUtils.FileUtils
         /// <summary>
         /// 文件解密
         /// </summary>
-        /// <param name="srcFile"></param>
-        /// <param name="dstFile"></param>
-        /// <param name="password"></param>
+        /// <param name="srcFile">源文件</param>
+        /// <param name="dstFile">目标文件</param>
+        /// <param name="password">解密密码</param>
+        /// <param name="overwrite">是否覆盖已有目标文件</param>
         /// <returns>
         /// 1:操作成功
         /// -11:要解密的文件不存在
         /// -12:解密后的目标文件已存在
+        /// -30:文件头不长度不吻合
         /// -90:解锁密码错误
         /// -404:未知错误,操作失败
         /// </returns>
-        public static int Decrypt(string srcFile, string dstFile, string password)
+        public static int Decrypt(string srcFile, string dstFile, string password, bool overwrite = true)
         {
+            DateTime beginTime = DateTime.Now;
             if (!File.Exists(srcFile)) return -11;//要解密的文件不存在
-            if (File.Exists(dstFile)) return -12;//解密后的目标文件已存在
+            if (File.Exists(dstFile) && !overwrite) return -12;//解密后的目标文件已存在
 
             string fmtPwd = AesTool.FmtPassword(password);
             string pwdMd5 = MD5Tool.Encrypt(MD5Tool.Encrypt(fmtPwd));
@@ -124,10 +134,15 @@ namespace Y.Utils.IOUtils.FileUtils
                 {
                     try
                     {
-                        byte[] headlength = new byte[4 * FileHeadLength];
+                        //读取头部信息个数
+                        byte[] count = new byte[4];
+                        fsRead.Read(count, 0, count.Length);
+                        int countint = BitConverter.ToInt32(count, 0);
+                        //读取各部分长度和数据
+                        byte[] headlength = new byte[4 * countint];
                         if (fsRead.Read(headlength, 0, headlength.Length) == headlength.Length)
                         {
-                            for (int i = 0; i < FileHeadLength; i++)
+                            for (int i = 0; i < countint; i++)
                             {
                                 int datalong = BitConverter.ToInt32(headlength, i * 4);
                                 byte[] tempdata = new byte[datalong];
@@ -135,6 +150,7 @@ namespace Y.Utils.IOUtils.FileUtils
                                 headdata.Add(Encoding.Default.GetString(tempdata));
                             }
                         }
+                        if (headdata.Count < 5) return -30;//文件头不长度不吻合
                         if (pwdMd5 != headdata[3]) return -90;//解锁密码错误
 
                         int readCount = 0;
@@ -156,12 +172,14 @@ namespace Y.Utils.IOUtils.FileUtils
                         }
                     }
                     catch (Exception e) { }
+                    fsWrite.Close();
                 }
+                fsRead.Close();
             }
             string md5 = FileTool.GetMD5(dstFile);
-            if (md5 == headdata[1])
+            if (headdata.Count > 1 && md5 == headdata[1])
             {
-                return 1;//操作成功
+                return (int)Math.Ceiling((DateTime.Now - beginTime).TotalSeconds);//操作成功
             }
             else
             {

+ 156 - 0
Fork.Net/Y.Utils/IOUtils/FileUtils/FilePackageTool.cs

@@ -0,0 +1,156 @@
+//************************************************************************
+//      https://github.com/yuzhengyang
+//      author:     yuzhengyang
+//      date:       2017.6.10 - 2017.6.10
+//      desc:       文件打包工具
+//      Copyright (c) yuzhengyang. All rights reserved.
+//************************************************************************
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Resources;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.Text;
+
+namespace Y.Utils.IOUtils.FileUtils
+{
+    /// <summary>
+    /// 文件打包工具
+    /// </summary>
+    public class FilePackageTool
+    {
+        private static string FileTypeDesc = "FilePackage [文件打包]";
+        private static int FileBuffer = 1024 * 1024;
+
+        #region 类型单一,文件处理复杂,加载占用超大内存(这都是辣鸡)
+        /// <summary>
+        /// 批量打包任意对象到资源文件
+        /// </summary>
+        /// <param name="objCollection">被打包对象的列表。键值对中键为其在资源文件中的唯一标示名。</param>
+        /// <param name="targetFilePath">目标资源文件。默认参数为当前目录下的"MyRes.pck"文件。</param>
+        /// <param name="overwrite">是否覆盖已存在的目标文件。默认=True</param>
+        public static void ResourcePackage(IDictionary<string, object> objCollection, string targetFilePath, bool overwrite = true)
+        {
+            if (overwrite) File.Delete(targetFilePath);
+            using (ResourceWriter rw = new ResourceWriter(targetFilePath))
+            {
+                foreach (KeyValuePair<string, object> pair in objCollection)
+                    //为了防传进来的资源名有数字开头,资源名都加了前缀_
+                    rw.AddResource("_" + pair.Key, pair.Value);
+                rw.Generate();
+                rw.Close();
+            }
+        }
+        /// <summary>
+        /// 解包资源文件,返回所有资源及其资源名
+        /// </summary>
+        /// <param name="targetFilePath">要解包的资源文件。默认为当前目录下的"MyRes.pck"</param>
+        /// <returns>资源字典,键值为资源唯一标示名。若无资源返回空集合。</returns>
+        public static Dictionary<string, object> ResourceUnpack(string targetFilePath)
+        {
+            Dictionary<string, object> rtn = new Dictionary<string, object>();
+            using (ResourceReader rr = new ResourceReader(targetFilePath))
+            {
+                foreach (DictionaryEntry entry in rr)
+                    rtn.Add(((string)entry.Key).Substring(1), entry.Value);
+            }
+            return rtn;
+        }
+        /// <summary>
+        /// 根据资源名在指定的资源文件中检索资源
+        /// </summary>
+        /// <param name="resName">资源名</param>
+        /// <param name="targetFilePath">要在其中检索的资源文件名,默认为"MyRes.pck"</param>
+        /// <returns>资源名对应的资源</returns>
+        public static object ResourceSearch(string resName, string targetFilePath)
+        {
+            object rtn = null;
+            using (ResourceReader rr = new ResourceReader(targetFilePath))
+            {
+                foreach (DictionaryEntry entry in rr)
+                    if ((string)entry.Key == '_' + resName)
+                    {
+                        rtn = entry.Value;
+                        break;
+                    }
+            }
+            return rtn;
+        }
+        /// <summary>
+        /// 将对象序列化
+        /// </summary>
+        /// <param name="FilePath">文件(支持绝大多数数据类型)</param>
+        /// <param name="obj">要序列化的对象(如哈希表,数组等等)</param>
+        public static void FileSerialize(string FilePath, object obj)
+        {
+            if (File.Exists(FilePath))
+            {
+                try
+                {
+                    FileStream fs = new FileStream(FilePath, FileMode.Create);
+                    BinaryFormatter sl = new BinaryFormatter();
+                    sl.Serialize(fs, obj);
+                    fs.Close();
+                }
+                catch
+                {
+                    //序列化存储失败!
+                }
+            }
+            else
+            {
+                //您读取的文件对象不存在
+            }
+        }
+        /// <summary>
+        /// 将文件反序列化
+        /// </summary>
+        /// <param name="FilePath">文件路径(必须是经过当前序列化后的文件)</param>
+        /// <returns>返回 null 表示序列反解失败或者目标文件不存在</returns>
+        public static object FileDeSerialize(string FilePath)
+        {
+            if (System.IO.File.Exists(FilePath))
+            {
+                try
+                {
+                    FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
+                    BinaryFormatter sl = new BinaryFormatter();
+                    object obg = sl.Deserialize(fs);
+                    fs.Close();
+                    return obg;
+                }
+                catch
+                {
+                    return null;
+                }
+            }
+            else
+            {
+                return null;
+            }
+        }
+        #endregion
+
+        /// <summary>
+        /// 打包
+        /// </summary>
+        /// <returns></returns>
+        public static int Pack(string srcPath, string dstFile, bool overwrite = true)
+        {
+            DateTime beginTime = DateTime.Now;
+            return (int)Math.Ceiling((DateTime.Now - beginTime).TotalSeconds);//操作成功
+        }
+        /// <summary>
+        /// 解包
+        /// </summary>
+        /// <returns></returns>
+        public static int UnPack(string srcFile, string dstPath, bool overwrite = true)
+        {
+            DateTime beginTime = DateTime.Now;
+            return (int)Math.Ceiling((DateTime.Now - beginTime).TotalSeconds);//操作成功
+        }
+    }
+}

+ 40 - 24
Fork.Net/Y.Utils/IOUtils/FileUtils/FileTool.cs

@@ -1,7 +1,10 @@
-//############################################################
+//************************************************************************
 //      https://github.com/yuzhengyang
-//      author:yuzhengyang
-//############################################################
+//      author:     yuzhengyang
+//      date:       2017.3.29 - 2017.6.10
+//      desc:       文件操作工具
+//      Copyright (c) yuzhengyang. All rights reserved.
+//************************************************************************
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -12,6 +15,9 @@ using Y.Utils.DataUtils.UnitConvertUtils;
 
 namespace Y.Utils.IOUtils.FileUtils
 {
+    /// <summary>
+    /// 文件操作工具
+    /// </summary>
     public class FileTool
     {
         /// <summary>
@@ -132,53 +138,63 @@ namespace Y.Utils.IOUtils.FileUtils
         /// </summary>
         /// <param name="file">文件路径</param>
         /// <returns></returns>
-        public static bool Delete(string file)
+        public static void Delete(string file)
         {
             try
             {
-                if (System.IO.File.Exists(file))
-                {
-                    System.IO.File.Delete(file);
-                    return true;
-                }
-                else
-                {
-                    return true;
-                }
+                File.Delete(file);
             }
-            catch { }
-            return false;
+            catch (Exception e) { }
         }
         /// <summary>
         /// 删除文件(多个)
         /// </summary>
         /// <param name="files">文件路径(支持多个文件路径)</param>
         /// <returns></returns>
-        public static bool Delete(string[] files)
+        public static void Delete(string[] files)
         {
-            bool result = true;
-            if (!ListTool.IsNullOrEmpty(files))
+            if (ListTool.HasElements(files))
             {
                 foreach (var file in files)
                 {
-                    result = result || Delete(file);
+                    Delete(file);
                 }
             }
-            return result;
         }
+        /// <summary>
+        /// 获取文件的大小(字节数)
+        /// </summary>
+        /// <param name="fileName"></param>
+        /// <returns></returns>
         public static long Size(string fileName)
         {
             FileInfo fi = new FileInfo(fileName);
             return fi.Length;
         }
-        public static string SizeFormat(string fileName)
+        /// <summary>
+        /// 获取文件大小(根据单位换算)
+        /// </summary>
+        /// <param name="fileName"></param>
+        /// <param name="unit">B,KB,MB,GB</param>
+        /// <returns></returns>
+        public static double Size(string fileName, string unit)
         {
-            return ByteConvertTool.Fmt(Size(fileName));
+            return ByteConvertTool.Cvt(Size(fileName), unit);
         }
-        public static string SizeConvert(string fileName, string unit)
+        /// <summary>
+        /// 获取文件大小信息(自动适配)(如:1MB,10KB...)
+        /// </summary>
+        /// <param name="fileName"></param>
+        /// <returns></returns>
+        public static string SizeFormat(string fileName)
         {
-            return ByteConvertTool.Cvt(Size(fileName), unit);
+            return ByteConvertTool.Fmt(Size(fileName));
         }
+        /// <summary>
+        /// 获取文件的MD5特征码
+        /// </summary>
+        /// <param name="file"></param>
+        /// <returns></returns>
         public static string GetMD5(string file)
         {
             string result = string.Empty;

+ 14 - 0
Fork.Net/Y.Utils/Readme.cs

@@ -0,0 +1,14 @@
+namespace Y.Utils
+{
+    class Readme
+    {
+    }
+}
+
+//************************************************************************
+//      https://github.com/yuzhengyang
+//      author:     yuzhengyang
+//      date:       2017.3.29 - 2017.6.10
+//      desc:       工具描述
+//      Copyright (c) yuzhengyang. All rights reserved.
+//************************************************************************

+ 2 - 0
Fork.Net/Y.Utils/Y.Utils.csproj

@@ -55,6 +55,8 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="AppUtils\AppUnique.cs" />
+    <Compile Include="IOUtils\FileUtils\FilePackageTool.cs" />
+    <Compile Include="Readme.cs" />
     <Compile Include="DataUtils\EncryptUtils\MD5Tool.cs" />
     <Compile Include="DataUtils\UnitConvertUtils\ByteConvertUtils.cs" />
     <Compile Include="IOUtils\FileUtils\FileEncryptTool.cs" />