Skip to content

Commit 06c74ec

Browse files
author
Meyn
committed
Fix LoadRequest empty temporary file existence issue
Update Shard.Requests to 2.1.6
1 parent dfe785c commit 06c74ec

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

DownloadAssistant/DownloadAssistant.csproj

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<PackageProjectUrl></PackageProjectUrl>
1111
<PackageIcon>logo.png</PackageIcon>
1212
<PackageReadmeFile>README.md</PackageReadmeFile>
13-
<Version>1.0.3</Version>
13+
<Version>1.0.4</Version>
1414
<GenerateDocumentationFile>True</GenerateDocumentationFile>
1515
<Description>A free to use library as a download manager.
1616
Includes retry, priority, cancel, etc.. function.
@@ -26,9 +26,8 @@ Features:
2626
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
2727
<Company>Shard</Company>
2828
<Authors>Meyn</Authors>
29-
<PackageReleaseNotes>Implement WriteMode.AppendOrTruncate
30-
Implement RequestFailed to LoadRequest
31-
Implement Download Speed Measurement</PackageReleaseNotes>
29+
<PackageReleaseNotes>Fix LoadRequest empty temporary file existence issue
30+
Update Shard.Requests to 2.1.6</PackageReleaseNotes>
3231
<RepositoryUrl>https://github.com/TypNull/DownloadAssistant</RepositoryUrl>
3332
</PropertyGroup>
3433

@@ -48,7 +47,7 @@ Implement Download Speed Measurement</PackageReleaseNotes>
4847
</ItemGroup>
4948

5049
<ItemGroup>
51-
<PackageReference Include="Shard.Requests" Version="2.1.4" />
50+
<PackageReference Include="Shard.Requests" Version="2.1.6" />
5251
</ItemGroup>
5352

5453
<ItemGroup>

DownloadAssistant/Requests/GetRequest.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ private void LoadWrittenBytes()
123123
FilePath = Path.Combine(Options.DirectoryPath, Filename);
124124
if (File.Exists(FilePath))
125125
BytesWritten = new FileInfo(FilePath).Length;
126+
BytesWritten = BytesWritten == 0 ? -1 : BytesWritten;
126127
}
127128

128129
/// <summary>
@@ -386,8 +387,6 @@ private async Task WriterAsync(ThrottledStream responseStream, FileStream fileSt
386387
/// <returns><c>true</c> if the file should be deleted; otherwise, <c>false</c>.</returns>
387388
private bool CheckClearFile(bool noBytesWritten) => ((!IsPartial()) && ShouldBePartial() && BytesWritten > 0) || (noBytesWritten && BytesWritten < Options.MinReloadSize);
388389

389-
390-
391390
/// <summary>
392391
/// Disposes the <see cref="GetRequest"/> instance.
393392
/// </summary>

DownloadAssistant/Requests/LoadRequest.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ private void OnStateChanged(object? sender, RequestState state)
245245
private void OnFailure(IRequest? request, HttpResponseMessage? element)
246246
{
247247
State = RequestState.Failed;
248-
Pause();
248+
Cancel();
249249
_ = ClearOnFailure();
250250
SynchronizationContext.Post((object? o) => Options.RequestFailed?.Invoke((IRequest)o!, element), this);
251251
}
@@ -314,13 +314,18 @@ private void CreatePlaceholderFile(GetRequest request)
314314
_writeMode = WriteMode.AppendOrTruncate;
315315
break;
316316
case WriteMode.Overwrite:
317-
case WriteMode.AppendOrTruncate:
318317
IOManager.Create(Destination);
319318

319+
_writeMode = WriteMode.AppendOrTruncate;
320+
break;
321+
case WriteMode.AppendOrTruncate:
322+
if (!File.Exists(Destination) || new FileInfo(Destination).Length <= 0)
323+
break;
324+
IOManager.Create(Destination);
320325
_writeMode = WriteMode.AppendOrTruncate;
321326
break;
322327
case WriteMode.Append:
323-
if (!File.Exists(Destination) && new FileInfo(Destination).Length <= 0)
328+
if (!File.Exists(Destination) || new FileInfo(Destination).Length <= 0)
324329
break;
325330
AddException(new FileLoadException($"The file {Filename} at {Destination} already exists. Please change the WriteMode to Create or increase the MinReloadSize."));
326331
OnFailure(this, null);
@@ -454,13 +459,12 @@ private async Task ClearOnFailure()
454459
File.Delete(TempDestination);
455460
if (File.Exists(Destination) && new FileInfo(Destination).Length == 0)
456461
File.Delete(Destination);
457-
await _chunkHandler.DeleteChunkFiles(_chunkHandler.RequestContainer.Length);
462+
await _chunkHandler.DeleteChunkFiles(_chunkHandler.RequestContainer.Count);
458463
}
459464
catch (Exception ex)
460465
{
461466
AddException(ex);
462467
}
463-
464468
}
465469

466470
/// <summary>

0 commit comments

Comments
 (0)