HuiWang111 / file-system-web

simplify FileSystem api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

web-fs

Reference

Install

npm i file-system-web
# or
yarn add file-system-web

Usage

import { readFile } from 'file-system-web';

async function main() {
    const fileContent = await readFile('1.txt');
    console.log(fileContent);
}

API

interfaces

  • RequestFileSystemConfig
interface RequestFileSystemConfig {
    size?: number;
    type?: 0 | 1;
}
  • DirectoryEntry
interface DirectoryEntry {
    filesystem: DOMFileSystem;
    fullPath: string;
    isDirectory: boolean;
    isFile: boolean;
    name: string;
    createReader: () => DirectoryReader;
    getDirectory: (
        path: string,
        options: GetDirectoryOptions,
        successCallback?: (dirEntry: DirectoryEntry) => void,
        errorCallback?: (e: Error) => void
    ) => void;
    getFile: (
        path: string,
        options: GetDirectoryOptions,
        successCallback?: (fileEntry: FileEntry) => void,
        errorCallback?: (e: Error) => void
    ) => void;
    remove: (
        successCallback: () => void,
        errorCallback?: (e: Error) => void
    ) => void;
    removeRecursively: (
        successCallback: () => void,
        errorCallback?: (e: Error) => void
    ) => void;
    // removeRecursively will Deprecated
}
  • FileEntry
interface FileEntry extends Omit<DirectoryEntry, 'removeRecursively'> {
    file: (
        successCallback: (file: unknown) => void,
        errorCallback?: (e: Error) => void
    ) => void;
    createWriter: (
        successCallback: (fileWriter: FileWriter) => void,
        errorCallback?: (e: Error) => void
    ) => void;
}
  • WriteFileConfig
interface WriteFileConfig {
    append?: boolean; // 是否追加内容
}
  • RemoveDirConfig
interface RemoveDirConfig {
    recursive?: boolean; // 是否递归删除
}
  • FSInfoResult
interface FSInfoResult {
    currentUsageInBytes: number; // 当前已使用字节数
    currentQuotaInBytes: number; // 当前配额字节数
}

defaultValues

  • RequestFileSystemConfig
const defaultConfig = {
    size: 0,
    type: 0
}
  • WriteFileConfig
const defaultWriteFileConfig = {
    append: false
}
  • RemoveDirConfig
const defaultRemoveDirConfig = {
    recursive: false
}

1. readFile(file: string, config?: RequestFileSystemConfig): Promise<string | ArrayBuffer | null>

2. createFile(file: string, config?: RequestFileSystemConfig): Promise<FileEntry>

3. deleteFile(file: string, config?: RequestFileSystemConfig): Promise<void>

4. writeFile(file: string, content: string | Blob | File, config?: RequestFileSystemConfig, writeFileConfig?: WriteFileConfig): Promise<void>

5. mkdir(dirname: string, config?: RequestFileSystemConfig): Promise<void>

6. readRootDir(config?: RequestFileSystemConfig): Promise<FileEntry[]>

7. deleteDir(path: string, config?: RequestFileSystemConfig, removeDirConfig?: RemoveDirConfig)

8. getFSInfo(type?: 0 | 1): Promise<FSInfoResult>

About

simplify FileSystem api


Languages

Language:TypeScript 59.5%Language:JavaScript 39.3%Language:HTML 1.2%