xoofx / zio

A cross-platform abstract/virtual filesystem framework with many built-ins filesystems for .NET
BSD 2-Clause "Simplified" License
827 stars 61 forks source link

could be support a FileFileSystem,a file as a disk(storage source) or partition ? #76

Closed sgf closed 1 year ago

sgf commented 1 year ago

Hello author, first of all this library looks very powerful. But for the virtual file system, it seems that except for the memory file system, others are not real virtual file systems. For example: If I want to treat a whole block of large files as a hard disk, a partition to be precise, create folders and files in it, and save the tree structure of the virtual file system. Does this library seem powerless? Yes. But I believe that the essentially similar ones should be the same as the memory file system. They may have almost universal logic except for the storage source.

Of course I'm not sure if my understanding of virtual filesystems is correct.

xoofx commented 1 year ago

But for the virtual file system, it seems that except for the memory file system, others are not real virtual file systems.

The interface IFileSystem provides a very basic abstraction over files/folders manipulation. If you mean that this library is not a "real" according to this definition Virtual File System, I dunno, considering that the first definition is _"A virtual file system (VFS) or virtual filesystem switch is an abstract layer on top of a more concrete file system."_ which is exactly what Zio does through e.g PhysisicalFileSystem (which is an implementation of IFileSystem over System.IO.File and System.IO.Directory)

But if you are looking for a file system that is allowing the pluggability at a lower level as e.g the Linux file system (e.g a particular entry can be mounted to a different storage, you can have links...etc.), then yes, Zio is definitely not supporting this and will never. It is out of scope, way bigger than the very modest goal of this project! 😅

sgf commented 1 year ago

I think I understand that this project aims to establish a unified file system abstraction layer. In a sense, the main goal is to unify the API details such as paths and operation methods of file systems on different platforms. A unified API abstraction layer is the key point. Anyway, thank you very much for your patient answer. Although it is not the same thing as the virtual file system as I understand it, this library is also very useful.