DTLib updated
This commit is contained in:
@@ -55,21 +55,28 @@ public class Network
|
||||
var manifestPath = Path.Concat(dirOnServer, "manifest.dtsod");
|
||||
Logger.LogDebug(nameof(Network), manifestPath);
|
||||
string manifestContent = Fsp.DownloadFileToMemory(manifestPath).BytesToString();
|
||||
Logger.LogDebug(nameof(Network), manifestContent);
|
||||
var manifest = new DtsodV23(manifestContent);
|
||||
var hasher = new Hasher();
|
||||
foreach (var fileOnServerData in manifest)
|
||||
{
|
||||
IOPath fileOnClient = Path.Concat(dirOnClient, fileOnServerData.Key);
|
||||
if (!File.Exists(fileOnClient) || (overwrite && hasher.HashFile(fileOnClient).HashToString() != fileOnServerData.Value))
|
||||
{
|
||||
Logger.LogDebug(nameof(Network), $"downloading {fileOnClient}");
|
||||
Fsp.DownloadFile(Path.Concat(dirOnServer, fileOnServerData.Key), fileOnClient);
|
||||
}
|
||||
}
|
||||
// удаление лишних файлов
|
||||
if (delete_excess)
|
||||
{
|
||||
foreach (var file in Directory.GetAllFiles(dirOnClient))
|
||||
{
|
||||
if (!manifest.ContainsKey(file.RemoveBase(dirOnClient).Str.Replace('\\','/')))
|
||||
if (!manifest.ContainsKey(file.RemoveBase(dirOnClient).Str.Replace('\\','/')))
|
||||
{
|
||||
Logger.LogDebug(nameof(Network), $"deleting {file}");
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
<PackageReference Include="Costura.Fody" Version="5.7.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="DTLib.Dtsod" Version="1.3.1" />
|
||||
<PackageReference Include="DTLib.Logging" Version="1.3.1" />
|
||||
<PackageReference Include="DTLib.Network" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Dtsod" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Logging" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Network" Version="1.4.1" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user