• 文件系统
    • 初始配置
    • 上下文环境
    • 文件系统API
      • Read
      • Exists
      • Delete
      • Write
      • Move
      • Copy
      • MakeDir
      • GetAttributes
      • GetSize
      • GetHandler
      • GetList
    • 自定义文件系统

    文件系统

    CatLib提供的文件系统抽象允许使用一个API来对多个本地(云存储)的文件存储系统进行操作。

    CatLib文件系统已经集成了处理本地文件系统的简单驱动。

    初始配置

    在使用CatLib文件组件之前您必须对组件进行配置,您可以通过初始配置来配置:

    配置名 是否必须 配置描述(可以点击查看详细)
    FileSystemProvider.DefaultPath 默认驱动定位的路径
    FileSystemProvider.DefaultDevice 默认驱动的名字

    上下文环境

    如果没有特殊的说明,本文中的示例项目都是基于下述上下文环境,默认使用本地文件驱动:

    1. var fileSystemManager = App.Make<IFileSystemManager>();

    您可以通过IFileSystemManagerDisk()方法来获取文件系统的磁盘实例。

    1. var disk = fileSystemManager.Disk();

    文件系统API

    Read

    通过Read()方法可以读取文件的字节流。

    1. byte[] data = disk.Read("helloworld.txt");

    Exists

    通过Exists()可以判断文件是否存在。

    1. bool isExists = disk.Exists("helloworld.txt");

    Delete

    通过Delete()可以删除文件。

    1. disk.Delete("helloworld.txt");

    Write

    通过Write()可以写入一个文件,如果文件已经存在那么覆盖数据。

    1. disk.Wrire("helloworld.txt" , Encoding.Default.GetBytes("hello world"));

    Move

    移动文件文件夹到指定路径中。

    Move()可以被用于重命名。

    1. disk.Move("helloworld.txt" , "NewDir");

    Copy

    复制文件文件夹到指定路径。

    1. disk.Copy("helloworld.txt" , "new-helloworld.txt");

    MakeDir

    新建一个文件夹

    1. disk.MakeDir("NewDir");

    GetAttributes

    获取文件文件夹的属性。

    1. disk.GetAttributes("helloworld.txt");

    GetSize

    获取文件文件夹的大小(如果是文件夹则是总大小)。

    1. disk.GetSize("helloworld.txt");

    GetHandler

    获取文件文件夹的句柄(可以通过句柄直接操作这个文件或文件夹)

    1. var fileHandler = disk.GetHandler<IFile>("helloworld.txt");
    1. var dirHandler = disk.GetHandler<IDirectory>("NewDir");

    GetList

    通过GetList()可以获取指定路径下的所有文件夹和文件的句柄(注意不会迭代子文件夹)。

    1. var list = disk.GetList();

    自定义文件系统

    CatLib文件系统允许您自定义您的文件系统驱动,您只需要使用Extend()就可以自定义拓展。

    1. fileSystemManager.Extend(()=>
    2. {
    3. return new FileSystem(new Local("/user/data"));
    4. },"MyDisk");

    扩展后您可以通过Disk()来获取扩展实例。

    1. var newDisk = fileSystemManager.Disk("MyDisk");