TempFile 1.0.2
dotnet add package TempFile --version 1.0.2
NuGet\Install-Package TempFile -Version 1.0.2
<PackageReference Include="TempFile" Version="1.0.2" />
<PackageVersion Include="TempFile" Version="1.0.2" />
<PackageReference Include="TempFile" />
paket add TempFile --version 1.0.2
#r "nuget: TempFile, 1.0.2"
#:package TempFile@1.0.2
#addin nuget:?package=TempFile&version=1.0.2
#tool nuget:?package=TempFile&version=1.0.2
TempFile
A Library that helps the User to deal with short-lived Streams that are too large to just keep in memory. An Example of such a usecase could be: Your logic needs to download a file, perform some operations on it and upload it somewhere else.
'TempFile' helps by providing a Stream to a Temp-File that you wan write to/read from and gets deleted as soon as it is disposed.
Add Namespace
using TempFile;
Basic Usage
Writing to a 'TempFileStream' is very similar to a normal Stream. To delete of the File, either use a using-block or manually dispose the Stream.
await using (var tempFile = new TempFileStream())
{
await tempFile.WriteAsync(Encoding.UTF8.GetBytes("Test"));
// Flush forces write to disk
await tempFile.FlushAsync();
// At this point, the Temp-File still exists
}
// As soon as we leave the using-block, the Temp-File is deleted
Using StreamWriter and StreamReader
When working with the 'TempFile' you normally also want to read from it. 'TempFileStream' acts like any normal Stream, where you can reset the Position.
var path = string.Empty;
await using (var tempFile = new TempFileStream())
{
path = tempFile.FilePath;
var writer = new StreamWriter(tempFile, Encoding.UTF8);
for (int i = 0; i < 5; i++)
{
await writer.WriteLineAsync($"Test {i}");
}
// Making sure that the data is written to disk and not still in a buffer
await writer.FlushAsync();
Console.WriteLine("Data has been written");
Console.WriteLine($"Temp-File is at: {path}");
Console.WriteLine("Press ENTER to proceed");
Console.ReadLine();
// We need to reset the Position of the Stream before we can read what was written before
tempFile.Position = 0;
var reader = new StreamReader(tempFile, Encoding.UTF8);
while (!reader.EndOfStream)
{
Console.WriteLine(await reader.ReadLineAsync());
}
Console.WriteLine($"File Exists before exiting using-block: {File.Exists(path)}");
}
Console.WriteLine($"File Exists after exiting using-block: {File.Exists(path)}");
Console.ReadLine();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.