added DTLib.XXHash

This commit is contained in:
2024-01-07 21:18:27 +06:00
parent b8ba4adfb3
commit e1f851384a
4 changed files with 31 additions and 17 deletions

View File

@@ -1,8 +1,5 @@
using System.Linq;
using System.Text;
using DTLib;
using DTLib.Extensions;
using DTLib.Filesystem;
using DTLib.XXHash;
using static launcher_server.Server;
namespace launcher_server;
@@ -20,7 +17,6 @@ public static class Manifests
}
StringBuilder manifestBuilder = new();
Hasher hasher = new();
var manifestPath = Path.Concat(dir, "manifest.dtsod");
if (Directory.GetFiles(dir).Contains(manifestPath))
File.Delete(manifestPath);
@@ -29,8 +25,11 @@ public static class Manifests
var fileRelative = fileInDir.RemoveBase(dir);
manifestBuilder.Append(fileRelative);
manifestBuilder.Append(": \"");
byte[] hash = hasher.HashFile(Path.Concat(fileInDir));
manifestBuilder.Append(hash.HashToString());
var fileStream = File.OpenRead(fileInDir);
ulong hash = xxHash64.ComputeHash(fileStream);
fileStream.Close();
string hashStr = BitConverter.GetBytes(hash).HashToString();
manifestBuilder.Append(hashStr);
manifestBuilder.Append("\";\n");
}
File.WriteAllText(manifestPath, manifestBuilder.ToString().Replace('\\','/'));
@@ -59,7 +58,7 @@ public static class Manifests
}
dirlist_content_builder
.Append("\t\"")
.Append(dirs[dirs.Length-1].RemoveBase(sync_and_remove_dir).Str.Replace('\\','/'))
.Append(dirs[^1].RemoveBase(sync_and_remove_dir).Str.Replace('\\','/'))
.Append("\"\n");
dirlist_content_builder.Append("];");

View File

@@ -12,8 +12,9 @@
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DTLib.Dtsod" Version="1.3.3" />
<PackageReference Include="DTLib.Logging" Version="1.3.3" />
<PackageReference Include="DTLib.Network" Version="1.4.1" />
<PackageReference Include="DTLib.Dtsod" Version="1.3.4" />
<PackageReference Include="DTLib.Logging" Version="1.3.4" />
<PackageReference Include="DTLib.Network" Version="1.4.2" />
<PackageReference Include="DTLib.XXHash" Version="1.0.0" />
</ItemGroup>
</Project>