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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LTRData.DiscUtils.Udf" Version="1.0.90" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LTRData.DiscUtils.Udf" Version="1.0.90" />
                    
Directory.Packages.props
<PackageReference Include="LTRData.DiscUtils.Udf" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LTRData.DiscUtils.Udf --version 1.0.90
                    
#r "nuget: LTRData.DiscUtils.Udf, 1.0.90"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LTRData.DiscUtils.Udf@1.0.90
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LTRData.DiscUtils.Udf&version=1.0.90
                    
Install as a Cake Addin
#tool nuget:?package=LTRData.DiscUtils.Udf&version=1.0.90
                    
Install as a Cake Tool

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).

Documentation

Repository and capability matrix · Wiki · Migration guide · Format registration and Native AOT

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed