Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
/zioPublic

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

License

NotificationsYou must be signed in to change notification settings

xoofx/zio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Features

  • Compatible with.NET 4.6+,netstandard2.0,netstandard2.1 andnet7.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 abstractionIFileSystem
  • Supports for filesystem watcher through theIFileSystem.Watch method and theIFileSystemWatcher interface
    • For all builtin filesystems (aggregates, memory...etc.)
  • All paths are normalized through a lightweight uniform path structUPath
  • 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 toC:\Windows)
    • MemoryFileSystem to access a filesystem in memory:
      • Trying to be 100% compatible with a truePhysicalFileSystem (including exceptions)
      • Efficient concurrency with a per node (file or directory) locking mechanism
      • A safe hierarchical locking strategy (followingUnix kernel recommendations for directory locking)
      • Support forFileShare.Read,FileShare.Write andFileShare.ReadWrite
      • Internally support for filesystem atomic operations (File.Replace)
    • ZipArchiveFileSystem to access zip archives:
      • This filesystem is a wrapper around theZipArchive class
      • It can work in case sensitive and case insensitive mode
      • Support forFileShare.Read withZipArchiveMode.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 toFileSystemEntry,FileEntry andDirectoryEntry offering a similar API to their respectiveFileSystemInfo,FileInfo,DirectoryInfo

Usage

Accessing a physical filesystem:

varfs=newPhysicalFileSystem();foreach(vardirinfs.EnumerateDirectories("/mnt/c")){// ...}

Using an in-memory filesystem:

varfs=newMemoryFileSystem();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

Thedocumentation is directly available as part of this repository in the/doc folder.

Download

Zio is available as a NuGet package:NuGet

Build

In order to build Zio, you need to install Visual Studio 2022 with latest.NET 7.0

License

This software is released under theBSD-Clause 2 license.

Credits

The logo isFile byjeff from the Noun Project

Author

Alexandre MUTEL akaxoofx

About

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

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages


[8]ページ先頭

©2009-2025 Movatter.jp