Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
Z

zio

> 编程语言
Open source

A cross-platform abstract/virtual filesystem framework with many built-ins filesystems for .NET

935 stars0 likes0 views
WebsiteGitHub

About

A cross-platform abstract/virtual filesystem framework with many built-ins filesystems for .NET

Zio

Zio provides a simple, powerful, cross-platform filesystem abstraction for .NET with many built-ins filesystems.

Features

  • Compatible with netstandard2.0, netstandard2.1 and net8.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
  • net10.0 async APIs via generated *Async file-system types and IAsyncEnumerable enumeration/search helpers
  • Supports for filesystem watcher through the IFileSystem.Watch method and the IFileSystemWatcher interface
    • For all builtin filesystems (aggregates, memory...etc.)
  • All paths are normalized through a lightweight uniform path struct UPath
  • Multiple built-ins filesystems:
    • PhysicalFileSystem to 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/Windows equivalent to C:\Windows)
    • MemoryFileSystem to 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.Write and FileShare.ReadWrite
      • Internally support for filesystem atomic operations (File.Replace)
    • ZipArchiveFileSystem to access zip archives:
      • This filesystem is a wrapper around the ZipArchive class
      • It can work in case sensitive and case insensitive mode
      • Support for FileShare.Read with ZipArchiveMode.Read
    • On top of these final filesystem, you can compose more complex filesystems:
      • AggregateFileSystem providing a read-only filesystem aggregating multiple filesystem that offers a merged view
      • MountFileSystem to mount different filesystems at a specific mount point name
      • SubFileSystem to view a sub-folder of another filesystem as if it was a root / directory
      • ReadOnlyFileSystem to interact safely with another filesystem in read-only mode
  • Higher level API similar to FileSystemEntry, FileEntry and DirectoryEntry offering a similar API to their respective FileSystemInfo, 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"))
}

Async APIs are available when targeting net10.0 through generated async file-system types such as MemoryFileSystemAsync. The following documentation provides more information about the API, generated async path, 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 the latest .NET 10 SDK so the net10.0 async target can compile.

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

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C#dotnetdotnet-corefilesystemfilesystem-api

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言