Zio 0.19.1
Prefix ReservedSee the version list below for details.
dotnet add package Zio --version 0.19.1
NuGet\Install-Package Zio -Version 0.19.1
<PackageReference Include="Zio" Version="0.19.1" />
<PackageVersion Include="Zio" Version="0.19.1" />
<PackageReference Include="Zio" />
paket add Zio --version 0.19.1
#r "nuget: Zio, 0.19.1"
#:package Zio@0.19.1
#addin nuget:?package=Zio&version=0.19.1
#tool nuget:?package=Zio&version=0.19.1
Zio

<img align="right" width="160px" height="160px" src="https://raw.githubusercontent.com/xoofx/zio/main/img/zio.png">
Zio provides a simple, powerful, cross-platform filesystem abstraction for .NET with many built-ins filesystems.
Features
- Compatible with
.NET 4.6+,netstandard2.0,netstandard2.1andnet7.0 - API providing all operations provided by the regular System.IO API (e.g File.Move, Directory.Delete... etc.)
- Allowing atomic filesystem operations (e.g File.Replace...)
- A simple interface abstraction
IFileSystem - Supports for filesystem watcher through the
IFileSystem.Watchmethod and theIFileSystemWatcherinterface- For all builtin filesystems (aggregates, memory...etc.)
- All paths are normalized through a lightweight uniform path struct
UPath - Multiple built-ins filesystems:
PhysicalFileSystemto access the physical disks, directories and folders.- With uniform paths, this filesystem on Windows is working like on a Windows Subsystem Linux (WSL), by remapping drives to mount directory (e.g path
/mnt/c/Windowsequivalent toC:\Windows)
- With uniform paths, this filesystem on Windows is working like on a Windows Subsystem Linux (WSL), by remapping drives to mount directory (e.g path
MemoryFileSystemto access a filesystem in memory:- Trying to be 100% compatible with a true
PhysicalFileSystem(including exceptions) - Efficient concurrency with a per node (file or directory) locking mechanism
- A safe hierarchical locking strategy (following Unix kernel recommendations for directory locking)
- Support for
FileShare.Read,FileShare.WriteandFileShare.ReadWrite - Internally support for filesystem atomic operations (
File.Replace)
- Trying to be 100% compatible with a true
ZipArchiveFileSystemto access zip archives:- This filesystem is a wrapper around the
ZipArchiveclass - It can work in case sensitive and case insensitive mode
- Support for
FileShare.ReadwithZipArchiveMode.Read
- This filesystem is a wrapper around the
- On top of these final filesystem, you can compose more complex filesystems:
AggregateFileSystemproviding a read-only filesystem aggregating multiple filesystem that offers a merged viewMountFileSystemto mount different filesystems at a specific mount point nameSubFileSystemto view a sub-folder of another filesystem as if it was a root/directoryReadOnlyFileSystemto interact safely with another filesystem in read-only mode
- Higher level API similar to
FileSystemEntry,FileEntryandDirectoryEntryoffering a similar API to their respectiveFileSystemInfo,FileInfo,DirectoryInfo
Usage
Accessing a physical filesystem:
var fs = new PhysicalFileSystem();
foreach(var dir in fs.EnumerateDirectories("/mnt/c"))
{
// ...
}
Using an in-memory filesystem:
var fs = new MemoryFileSystem();
fs.WriteAllText("/temp.txt", "This is a content");
if (fs.FileExists("/temp.txt"))
{
Console.WriteLine("The content of the file:" + fs.ReadAllText("/temp.txt"))
}
The following documentation provides more information about the API and how to use it.
Documentation
The documentation is directly available as part of this repository in the /doc folder.
Download
Zio is available as a NuGet package:
Build
In order to build Zio, you need to install Visual Studio 2022 with latest .NET 7.0
License
This software is released under the BSD-Clause 2 license.
Credits
The logo is File by jeff from the Noun Project
Author
Alexandre MUTEL aka xoofx
| 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 is compatible. 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 was computed. 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. |
| .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 | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. 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.2
- System.IO.Compression (>= 4.3.0)
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.0
- System.IO.Compression (>= 4.3.0)
- System.IO.Compression.ZipFile (>= 4.3.0)
-
.NETStandard 2.1
- System.IO.Compression (>= 4.3.0)
- System.IO.Compression.ZipFile (>= 4.3.0)
-
net7.0
- No dependencies.
NuGet packages (21)
Showing the top 5 NuGet packages that depend on Zio:
| Package | Downloads |
|---|---|
|
ROFSDB
Package Description |
|
|
Libplanet.Store
Package Description |
|
|
com.csutil.cscore
cscore is a lightweight library providing commonly used helpers and patterns for all your C# projects including Logging, PubSub and Injection. See more details at https://github.com/cs-util-com/cscore |
|
|
Borg.Transporter.Core
Common Transporter code |
|
|
Test262Harness
Test262 Harness for .NET |
GitHub repositories (9)
Showing the top 9 popular GitHub repositories that depend on Zio:
| Repository | Stars |
|---|---|
|
Facepunch/sbox-public
s&box is a modern game engine, built on Valve's Source 2 and the latest .NET technology, it provides a modern intuitive editor for creating games
|
|
|
planetarium/libplanet
Blockchain in C#/.NET for on-chain, decentralized gaming
|
|
|
SnowflakePowered/snowflake
:snowflake: :video_game: Emulator Frontend and SDK
|
|
|
cs-util-com/cscore
cscore is a minimal-footprint library providing commonly used helpers & patterns for your C# projects. It can be used in both pure C# and Unity projects.
|
|
|
furesoft/Slithin
A management application for the remarkable tablet
|
|
|
OpenTPW/OpenTPW
An open-source re-implementation of Bullfrog's Sim Theme Park / Theme Park World (1999)
|
|
|
xoofx/CppAst.CodeGen
An extensible library providing C# PInvoke codegen from C/C++ files for .NET
|
|
|
xoofx/NPlug
Develop VST3 audio native plugins with .NET
|
|
|
dn-vm/dnvm
dnvm is a command-line interface for installing and updating different dotnet SDKs
|
| Version | Downloads | Last Updated |
|---|---|---|
| 0.22.1 | 487 | 11/25/2025 |
| 0.22.0 | 178 | 11/25/2025 |
| 0.21.3 | 863 | 11/15/2025 |
| 0.21.2 | 6,275 | 9/14/2025 |
| 0.21.1 | 256 | 9/14/2025 |
| 0.21.0 | 15,921 | 4/7/2025 |
| 0.20.0 | 10,541 | 12/5/2024 |
| 0.19.2 | 17,004 | 8/1/2024 |
| 0.19.1 | 3,131 | 7/19/2024 |
| 0.19.0 | 6,060 | 6/23/2024 |
| 0.18.1 | 308 | 6/21/2024 |
| 0.18.0 | 91,609 | 6/1/2024 |
| 0.17.1 | 679 | 5/20/2024 |
| 0.17.0 | 300,316 | 10/27/2023 |
| 0.16.2 | 62,175 | 1/24/2023 |
| 0.16.1 | 10,730 | 11/14/2022 |
| 0.16.0 | 658 | 11/12/2022 |
| 0.15.0 | 58,555 | 4/24/2022 |
| 0.14.0 | 8,871 | 2/4/2022 |
| 0.13.0 | 36,294 | 8/31/2021 |
| 0.12.0 | 2,894 | 5/31/2021 |
| 0.11.0 | 17,280 | 12/24/2020 |
| 0.10.0 | 826 | 12/23/2020 |
| 0.9.1 | 49,465 | 6/18/2020 |
| 0.9.0 | 1,003 | 6/17/2020 |
| 0.8.0 | 61,755 | 4/19/2020 |
| 0.7.6 | 51,807 | 1/28/2020 |
| 0.7.5 | 883 | 1/28/2020 |
| 0.7.4 | 1,103,673 | 5/11/2019 |
| 0.7.3 | 3,642 | 2/6/2019 |
| 0.7.2 | 6,442 | 4/4/2018 |
| 0.7.1 | 8,485 | 1/12/2018 |
| 0.7.0 | 1,631 | 1/11/2018 |
| 0.6.0 | 1,991 | 12/23/2017 |
| 0.5.0 | 1,756 | 12/10/2017 |
| 0.4.0 | 1,741 | 12/9/2017 |
| 0.3.6 | 1,784 | 11/19/2017 |
| 0.3.5 | 1,583 | 11/19/2017 |
| 0.3.4 | 1,598 | 11/19/2017 |
| 0.3.3 | 1,628 | 11/19/2017 |
| 0.3.2 | 1,605 | 11/14/2017 |
| 0.3.1 | 1,579 | 5/15/2017 |
| 0.3.0 | 1,452 | 5/14/2017 |
| 0.2.0 | 1,536 | 5/5/2017 |
| 0.1.0 | 1,649 | 5/1/2017 |