LTRData.DiscUtils.VirtualFileSystem
1.0.89
dotnet add package LTRData.DiscUtils.VirtualFileSystem --version 1.0.89
NuGet\Install-Package LTRData.DiscUtils.VirtualFileSystem -Version 1.0.89
<PackageReference Include="LTRData.DiscUtils.VirtualFileSystem" Version="1.0.89" />
<PackageVersion Include="LTRData.DiscUtils.VirtualFileSystem" Version="1.0.89" />
<PackageReference Include="LTRData.DiscUtils.VirtualFileSystem" />
paket add LTRData.DiscUtils.VirtualFileSystem --version 1.0.89
#r "nuget: LTRData.DiscUtils.VirtualFileSystem, 1.0.89"
#:package LTRData.DiscUtils.VirtualFileSystem@1.0.89
#addin nuget:?package=LTRData.DiscUtils.VirtualFileSystem&version=1.0.89
#tool nuget:?package=LTRData.DiscUtils.VirtualFileSystem&version=1.0.89
LTRData.DiscUtils.VirtualFileSystem
Composable .NET virtual filesystem trees, TAR and ZIP filesystem readers, and a TAR image builder through DiscUtils abstractions.
Part of the LTRData DiscUtils fork. Package IDs use LTRData.DiscUtils; C# namespaces remain DiscUtils.
Installation
dotnet add package LTRData.DiscUtils.VirtualFileSystem
Capabilities
| Capability | Support |
|---|---|
| Build a virtual directory tree | Yes |
| Supply file content | Streams or file-open delegates |
| Expose common filesystem APIs | Yes |
| Read existing TAR / ZIP archives | Yes, as read-only filesystem views |
| Create TAR archives | Yes, using TarFileSystemBuilder |
| Create ZIP archives / modify existing archives | No through these filesystem wrappers |
| Write behavior | Depends on options, callbacks and implemented operations |
Usage notes
VirtualFileSystem, its directory/file entries and VirtualFileSystemOptions let applications compose a filesystem view. TarFileSystem and ZipFileSystem provide read-only archive views; TarFileSystemBuilder builds new TAR images. The TAR view skips symbolic links. ZIP entries are decompressed into memory when opened, including large entries backed by sparse memory buffers. CopyFile is not implemented; some metadata APIs also have limitations. Freeze can make an assembled tree read-only. Registration enables automatic TAR/ZIP filesystem detection; no registration is needed to construct a tree or use the readers/builder directly.
Registration
For automatic discovery, register the providers implemented by this package:
DiscUtils.VirtualFileSystem.Formats.Register();
Direct use of the concrete APIs in this package does not require discovery registration. Each registration call covers only its own assembly. Register DiscUtils.Core.Formats.Register() as well when using generic disk opening through the local-file transport, and register other disk/filesystem providers as needed. These registration calls support trimming and Native AOT; this is not a guarantee for every operation in the package.
Example
using System;
using DiscUtils.VirtualFileSystem;
using var fs = new VirtualFileSystem(new VirtualFileSystemOptions { CanWrite = true });
fs.AddDirectory("Reports");
fs.Freeze();
Console.WriteLine(fs.DirectoryExists("Reports"));
Open a TAR filesystem view
using System;
using System.IO;
using DiscUtils.VirtualFileSystem;
using var archive = File.OpenRead("files.tar");
using var fs = new TarFileSystem(archive, ownsStream: false);
foreach (var file in fs.Root.GetFiles())
Console.WriteLine(file.FullName);
Related packages
Documentation
Repository and capability matrix · Wiki · Migration guide · Format registration and Native AOT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 is compatible. 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 is compatible. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net46 is compatible. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6
- LTRData.DiscUtils.Core (>= 1.0.89)
-
.NETFramework 4.8
- LTRData.DiscUtils.Core (>= 1.0.89)
-
.NETStandard 2.0
- LTRData.DiscUtils.Core (>= 1.0.89)
-
.NETStandard 2.1
- LTRData.DiscUtils.Core (>= 1.0.89)
-
net10.0
- LTRData.DiscUtils.Core (>= 1.0.89)
-
net8.0
- LTRData.DiscUtils.Core (>= 1.0.89)
-
net9.0
- LTRData.DiscUtils.Core (>= 1.0.89)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on LTRData.DiscUtils.VirtualFileSystem:
| Package | Downloads |
|---|---|
|
LTRData.DiscUtils.FileSystems
DiscUtils meta-package for filesystem readers, supported filesystem writers and virtual filesystem abstractions. |
|
|
LTRData.DiscUtils
Broad DiscUtils meta-package for managed .NET disk images, filesystems, storage protocols and related storage formats. |
|
|
LTRData.DiscUtils.Dokan
Mounts DiscUtils IFileSystem implementations using Dokan file system driver |
|
|
LTRData.DiscUtils.MountFuse
FUSE integration for exposing DiscUtils filesystem implementations on platforms supported by LTRData.FuseDotNet. |
|
|
LTRData.DiscUtils.MountDokan
Windows integration for exposing DiscUtils filesystem implementations through the Dokan filesystem driver. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.89 | 99 | 9/22/2026 |
| 1.0.88 | 897 | 8/3/2026 |
| 1.0.87 | 373 | 7/20/2026 |
| 1.0.86 | 716 | 7/4/2026 |
| 1.0.85 | 338 | 6/30/2026 |
| 1.0.84 | 312 | 6/27/2026 |
| 1.0.83 | 498 | 6/18/2026 |
| 1.0.82 | 405 | 5/26/2026 |
| 1.0.81 | 414 | 5/14/2026 |
| 1.0.80 | 443 | 4/24/2026 |
| 1.0.77 | 459 | 3/13/2026 |
| 1.0.76 | 409 | 3/10/2026 |
| 1.0.75 | 352 | 2/20/2026 |
| 1.0.74 | 313 | 2/18/2026 |
| 1.0.73 | 1,127 | 1/5/2026 |
| 1.0.72 | 599 | 11/25/2025 |
| 1.0.71 | 531 | 11/19/2025 |
| 1.0.70 | 541 | 11/11/2025 |
| 1.0.69 | 503 | 10/31/2025 |
| 1.0.68 | 443 | 10/30/2025 |