/// /// import { Dirent, Stats } from "fs"; import { SearchTextResult, WalkOptions } from "./fileSystem"; import { Pattern } from "./matcher"; /** * 获取文件或文件夹的属性 * @param path 要获取的路径 * @param resolveLink 如果是软链接,是否解析链接引用的路径属性 */ export declare function getStat(path: string, resolveLink?: boolean): Stats; /** * 判断指定的路径是否存在 * @param path 要判断的路径 * @returns 如果路径不存在,则返回 `false`,否则返回 `true` */ export declare function exists(path: string): boolean; /** * 判断指定的文件是否存在 * @param path 要判断的路径 * @returns 如果文件不存在或路径不是一个文件,则返回 `false`,否则返回 `true` */ export declare function existsFile(path: string): boolean; /** * 判断指定的文件夹是否存在 * @param path 要判断的路径 * @returns 如果文件夹不存在或路径不是一个文件,则返回 `false`,否则返回 `true` */ export declare function existsDir(path: string): boolean; /** * 如果指定的路径不存在则直接返回,否则返回重命名后的新路径 * @param path 要测试的文件或文件夹路径 * @param append 如果路径已存在则添加的文件名后缀,其中的数字会递增直到文件不存在 */ export declare function ensureNotExists(path: string, append?: string): string; /** * 如果路径所在的文件夹不存在则创建一个 * @param path 相关的路径 */ export declare function ensureDirExists(path: string): void; /** * 创建一个文件夹 * @param path 要创建的文件夹路径 */ export declare function createDir(path: string): void; /** * 创建一个临时文件夹 * @param parent 临时文件夹的根目录 * @returns 返回已创建文件夹路径 */ export declare function createTempDir(parent?: string): any; /** * 删除指定的文件夹 * @param path 要删除的文件夹路径 * @param recursive 是否删除所有所有子文件夹和文件,如果为 `false` 则只删除空文件夹 * @returns 返回删除的文件数 */ export declare function deleteDir(path: string, recursive?: boolean): number; /** * 清空指定的文件夹 * @param path 要清空的文件夹路径 * @returns 返回删除的文件数 */ export declare function cleanDir(path: string): number; /** * 如果路径所在的文件夹是空的则删除所在文件夹 * @param path 文件夹内的文件路径 * @returns 返回已删除的文件夹数,如果文件夹不空,返回 `0` */ export declare function deleteParentDirIfEmpty(path: string): number; /** * 删除指定的文件或软链接 * @param path 要删除的文件路径 * @returns 如果删除成功则返回 `true`,否则说明文件不存在,返回 `false` */ export declare function deleteFile(path: string): boolean; /** * 深度遍历指定的路径并执行回调 * @param path 要遍历的文件或文件夹路径 * @param options 遍历的选项 */ export declare function walk(path: string, options: WalkOptions, /**@internal */ _stats?: Dirent | Stats): void; /** * 遍历通配符匹配的所有文件 * @param pattern 要匹配的模式 * @param callback 遍历的回调函数 * @param baseDir 查找的基文件夹路径 * @param followLinks 是否展开链接,默认 `true` */ export declare function walkGlob(pattern: Pattern, callback: (path: string) => any, baseDir?: string, followLinks?: boolean): void; /** * 查找匹配指定模式的所有文件 * @param pattern 要匹配的模式 * @param baseDir 查找的基文件夹路径 * @param followLinks 是否展开链接,默认 `true` * @returns 返回所有匹配文件的路径 */ export declare function glob(pattern: Pattern, baseDir?: string, followLinks?: boolean): string[]; /** * 获取文件夹内的所有文件和文件夹组成的数组 * @param path 要读取的文件夹路径 * @param withFileTypes 是否包含文件类型信息 */ export declare function readDir(path: string, withFileTypes: true): Dirent[]; /** * 获取文件夹内的所有文件和文件夹组成的数组 * @param path 要读取的文件夹路径 * @param withFileTypes 是否包含文件类型信息 */ export declare function readDir(path: string, withFileTypes?: boolean): string[]; /** * 读取指定文件的二进制内容 * @param path 要读取的文件路径 */ export declare function readFile(path: string): Buffer; /** * 读取指定文件的文本内容 * @param path 要读取的文件路径 * @param encoding 文件的编码 */ export declare function readFile(path: string, encoding: BufferEncoding): string; /** * 使用 UTF-8 编码读取指定的文本文件 * @param path 要读取的文件路径 * @param throwIfNotFound 如果文件不存在,是否抛出异常,如果值为 `false`,则文件不存在时返回 `null` */ export declare function readText(path: string, throwIfNotFound: false): string | null; /** * 使用 UTF-8 编码读取指定的文本文件 * @param path 要读取的文件路径 * @param throwIfNotFound 如果文件不存在,是否抛出异常,如果值为 `false`,则文件不存在时返回 `null` */ export declare function readText(path: string, throwIfNotFound?: boolean): string; /** * 将内容写入指定的文件 * @param path 要写入的文件路径 * @param data 要写入的文件数据 * @param overwrite 是否允许覆盖现有的目标 * @returns 如果写入成功则返回 `true`,否则说明目标已存在,返回 `false` */ export declare function writeFile(path: string, data: string | Buffer, overwrite?: boolean): boolean; /** * 在指定文件末尾追加内容 * @param path 要创建的文件路径 * @param data 要写入的文件数据 */ export declare function appendFile(path: string, data: string | Buffer): void; /** * 读取指定的 JSON 文件 * @param path 要读取的文件路径 */ export declare function readJSON(path: string): any; /** * 保存指定的 JSON 文件 * @param path 要保存的文件路径 * @param data 要保存的 JSON 数据 */ export declare function writeJSON(path: string, data: any): void; /** * 搜索指定文件 * @param path 要搜索的文件路径 * @param search 搜索的源 * @param limit 限制匹配的数目 */ export declare function searchText(path: string, search: string | RegExp, limit?: number): SearchTextResult[]; /** * 搜索匹配的文件 * @param pattern 要搜索的通配符 * @param search 搜索的源 * @param baseDir 搜索的根目录 * @param limit 限制匹配的数目 * @param followLinks 是否展开链接,默认 `false` */ export declare function searchAllText(pattern: string, search: string | RegExp, baseDir?: string, limit?: number, followLinks?: boolean): SearchTextResult[]; /** * 替换匹配的文件 * @param path 要搜索的文件路径 * @param search 替换的源 * @param replacer 替换的目标 * @returns 返回受影响的文件数 */ export declare function replaceText(path: string, search: string | RegExp, replacer: string | ((source: string, ...args: any[]) => string)): boolean; /** * 替换匹配的文件 * @param pattern 要搜索的通配符 * @param search 替换的源 * @param replacer 替换的目标 * @param baseDir 搜索的根目录 * @param followLinks 是否展开链接,默认 `false` * @returns 返回受影响的文件数 */ export declare function replaceAllText(pattern: string, search: string | RegExp, replacer: string | ((source: string, ...args: any[]) => string), baseDir?: string, followLinks?: boolean): number; /** * 创建一个软链接 * @param path 要创建的文件路径 * @param target 要链接的目标路径 * @param overwrite 是否覆盖已有的目标 * @returns 如果创建成功则返回 `true`,否则说明目标已存在,返回 `false` */ export declare function createLink(path: string, target: string, overwrite?: boolean): boolean; /** * 读取软链接的实际地址 * @param path 要读取的软链接路径 */ export declare function readLink(path: string): string; /** * 复制指定的文件夹 * @param src 要复制的源路径 * @param dest 要复制的目标路径 * @param overwrite 是否覆盖已有的目标 * @param preserveLinks 是否保留链接 * @param ignore 忽略的通配符 * @returns 返回已复制的文件数 */ export declare function copyDir(src: string, dest: string, overwrite?: boolean, preserveLinks?: boolean, ignore?: Pattern): number; /** * 复制指定的文件 * @param src 要复制的源路径 * @param dest 要复制的目标路径 * @param overwrite 是否覆盖已有的目标 * @returns 如果复制成功则返回 `true`,否则说明目标已存在,返回 `false` */ export declare function copyFile(src: string, dest: string, overwrite?: boolean): boolean; /** * 复制指定的软链接 * @param src 要复制的源路径 * @param dest 要复制的目标路径 * @param overwrite 是否覆盖已有的目标 * @returns 如果复制成功则返回 `true`,否则说明目标已存在,返回 `false` */ export declare function copyLink(src: string, dest: string, overwrite?: boolean): boolean; /** * 移动指定的文件夹 * @param src 要移动的源路径 * @param dest 要移动的目标路径 * @param overwrite 是否允许覆盖现有的目标 * @param preserveLinks 是否保留链接 */ export declare function moveDir(src: string, dest: string, overwrite?: boolean, preserveLinks?: boolean): void; /** * 移动指定的文件 * @param src 要移动的源路径 * @param dest 要移动的目标路径 * @param overwrite 是否允许覆盖现有的目标 * @returns 如果移动成功则返回 `true`,否则说明目标已存在,返回 `false` */ export declare function moveFile(src: string, dest: string, overwrite?: boolean): boolean; /** * 移动指定的软链接 * @param src 要移动的源路径 * @param dest 要移动的目标路径 * @param overwrite 是否允许覆盖现有的目标 * @returns 如果移动成功则返回 `true`,否则说明目标已存在,返回 `false` */ export declare function moveLink(src: string, dest: string, overwrite?: boolean): boolean; /** * 获取指定路径区分大小写的实际路径,如果地址不存在则返回 `null` * @param path 原路径 */ export declare function getRealPath(path: string): string;