LTRData.DiscUtils.Udf
1.0.90
dotnet add package LTRData.DiscUtils.Udf --version 1.0.90
NuGet\Install-Package LTRData.DiscUtils.Udf -Version 1.0.90
<PackageReference Include="LTRData.DiscUtils.Udf" Version="1.0.90" />
<PackageVersion Include="LTRData.DiscUtils.Udf" Version="1.0.90" />
<PackageReference Include="LTRData.DiscUtils.Udf" />
paket add LTRData.DiscUtils.Udf --version 1.0.90
#r "nuget: LTRData.DiscUtils.Udf, 1.0.90"
#:package LTRData.DiscUtils.Udf@1.0.90
#addin nuget:?package=LTRData.DiscUtils.Udf&version=1.0.90
#tool nuget:?package=LTRData.DiscUtils.Udf&version=1.0.90
LTRData.DiscUtils.Udf
Managed .NET reader and image builder for UDF optical-disc filesystems.
Part of the LTRData DiscUtils fork. Package IDs use LTRData.DiscUtils; C# namespaces remain DiscUtils.
Installation
dotnet add package LTRData.DiscUtils.Udf
Capabilities
| Capability | Support |
|---|---|
| Read files and directories | Yes |
| Create a filesystem | UDF 2.01 with UdfBuilder |
| Modify an existing filesystem | No |
Usage notes
UdfReader exposes files and extended attributes. Size, UsedSpace and AvailableSpace are not implemented. For automatic ISO/UDF detection, reference LTRData.DiscUtils.OpticalDisk and register its providers; this package has no generated Formats entry point.
UdfBuilder creates a read-only UDF 2.01 image with one physical partition and 2048-byte logical blocks. Files are limited to 234 short allocation descriptors (approximately 234 GiB per file); the partition is limited to approximately 8 TiB. The builder preserves names, directories and file contents, but does not import source filesystem attributes, extended attributes or permissions.
Build() and BuildAsync(cancellationToken) return a seekable virtual image as a Stream. Construction creates metadata in memory and opens no file payloads. Every image owns the streams returned by its source factories; each factory must return a new readable, seekable stream of the declared length on every call. Async image reads use the source stream's async methods. Separate builds have independent positions; a single image stream must not be read concurrently.
The source-path overload checks length and last-write time whenever it opens the file. These checks do not make a content snapshot: keep source files and retained byte arrays unchanged for the image's lifetime. Unexpected truncation fails, and reads never include source data beyond a declared extent. The overloads that build to an output file or stream materialize the entire image, including payloads and zero padding.
Example
using System;
using System.IO;
using DiscUtils.Udf;
// The stream starts at the filesystem, not at a whole disk's partition table.
using var stream = File.OpenRead("disc.udf");
using var fs = new UdfReader(stream);
foreach (var file in fs.Root.GetFiles())
Console.WriteLine(file.FullName);
Create a virtual image from existing files:
using System.IO;
using DiscUtils.Udf;
var builder = new UdfBuilder { VolumeIdentifier = "DISC" };
builder.AddDirectory("BDMV/EMPTY");
builder.AddFile("BDMV/index.bdmv", Path.Combine("source", "BDMV", "index.bdmv"));
builder.AddFile("readme.txt", System.Text.Encoding.UTF8.GetBytes("Virtual UDF image"));
using Stream image = builder.Build();
// Serve reads/seeks from image, or materialize it with builder.Build(output).
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.90)
- LTRData.DiscUtils.Iso9660 (>= 1.0.90)
-
.NETFramework 4.8
- LTRData.DiscUtils.Core (>= 1.0.90)
- LTRData.DiscUtils.Iso9660 (>= 1.0.90)
-
.NETStandard 2.0
- LTRData.DiscUtils.Core (>= 1.0.90)
- LTRData.DiscUtils.Iso9660 (>= 1.0.90)
-
.NETStandard 2.1
- LTRData.DiscUtils.Core (>= 1.0.90)
- LTRData.DiscUtils.Iso9660 (>= 1.0.90)
-
net10.0
- LTRData.DiscUtils.Core (>= 1.0.90)
- LTRData.DiscUtils.Iso9660 (>= 1.0.90)
-
net8.0
- LTRData.DiscUtils.Core (>= 1.0.90)
- LTRData.DiscUtils.Iso9660 (>= 1.0.90)
-
net9.0
- LTRData.DiscUtils.Core (>= 1.0.90)
- LTRData.DiscUtils.Iso9660 (>= 1.0.90)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on LTRData.DiscUtils.Udf:
| Package | Downloads |
|---|---|
|
Microsoft.CST.RecursiveExtractor
RecursiveExtractor is able to process the following formats: ar, bzip2, deb, gzip, iso, tar, vhd, vhdx, vmdk, wim, xzip, and zip. RecursiveExtractor automatically detects the archive type and fails gracefully when attempting to process malformed content. |
|
|
LTRData.DiscUtils.OpticalDisk
Managed .NET optical-disc image access and automatic detection of ISO 9660 and UDF filesystems. |
|
|
JeremyAnsel.IO.DiscLocator
A .Net library to abstract file access to disc images. Supports Iso, Udf. |
|
|
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 |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on LTRData.DiscUtils.Udf:
| Repository | Stars |
|---|---|
|
SvenGDK/PS-Multi-Tools
Backup manager with utilities for PS1, PS2, PSX (DVR), PS3, PS4, PS5, PSP & PS Vita, containing downloads for homebrew, firmwares, payloads & more.
|
|
|
microsoft/RecursiveExtractor
RecursiveExtractor is a .NET Standard 2.0 archive extraction Library, and Command Line Tool which can process 7zip, ar, bzip2, deb, gzip, iso, rar, tar, vhd, vhdx, vmdk, wim, xzip, and zip archives and any nested combination of the supported formats.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.90 | 694 | 10/11/2026 |
| 1.0.89 | 8,173 | 9/22/2026 |
| 1.0.88 | 2,721 | 8/3/2026 |
| 1.0.87 | 969 | 7/20/2026 |
| 1.0.86 | 1,631 | 7/4/2026 |
| 1.0.85 | 537 | 6/30/2026 |
| 1.0.84 | 370 | 6/27/2026 |
| 1.0.83 | 784 | 6/18/2026 |
| 1.0.82 | 18,519 | 5/26/2026 |
| 1.0.81 | 946 | 5/14/2026 |
| 1.0.80 | 1,368 | 4/24/2026 |
| 1.0.77 | 1,030 | 3/13/2026 |
| 1.0.76 | 510 | 3/10/2026 |
| 1.0.75 | 1,278 | 2/20/2026 |
| 1.0.74 | 376 | 2/18/2026 |
| 1.0.73 | 2,471 | 1/5/2026 |
| 1.0.72 | 897 | 11/25/2025 |
| 1.0.71 | 687 | 11/19/2025 |
| 1.0.70 | 823 | 11/11/2025 |
| 1.0.69 | 651 | 10/31/2025 |