import shell from 'shelljs'; import { ICsvDealer } from '../interface'; export declare const fileUtil: { /** * 拷贝文件/文件夹 * @param pathFrom * @param pathTo */ cp(pathFrom: string, pathTo: string): void; /** * 生成一个指定大小的文件 (跨平台) */ mockFile(target: string, sizeMb: number): void; getFileSizeMb(target: string): number; getFileSizeBytes(target: string): number; /** * 删除文件或文件夹 * @param file */ delete(file: string): void; /** * 获取一个临时文件名 * @param ext */ tmpFile(ext?: string): string; /** * 返回系统临时目录的绝对路径 */ tmpdir(): string; /** * 获取文件或文件夹大小(kb) (跨平台) * 空文件夹也返回0,可作为空文件夹判断条件 * 空文件=0 */ getSizeKb(target: string): number; /** * 多路径校验 * @param paths */ checkPaths(paths: string[]): boolean; /** * 合法路径检查 tmp下/家目录/本工程目录下 * @param target */ checkPath(target: string): boolean; /** * 清空文件 * @param file */ clean(file: string): string; /** * 按时间删除n天前的文件 (跨平台) * @param fPath * @param opts */ deleteOldFiles(fPath: string, opts?: { daysAgo?: number; name?: string; }): void; /** * 重命名文件 */ rename(oldFile: string, newFile: string): void; /** * 创建一个空白文件, 可以指定文件或格式, 否则返回一个临时文件 * @param opts */ genEmptyFile(opts: { ext?: string; file?: string; }): string; /** * 清空文件夹 * @param dir */ cleanDir(dir: string): string | undefined; resumeOrBackUpFile(filePath: string): void; /** * 保存url或字符串为临时文件, 返回文件路径 * @param urlOrStr * @param rename */ saveTempFile(urlOrStr: string, rename?: string): Promise; /** * 同步保存文件 (跨平台, 使用 urllib 替代 wget) * @param url * @param rename * @deprecated 请使用 async saveTempFile 替代 */ saveTempFileSync(url: string, rename?: string): Promise; /** * getFileBufferByUrl * @param url * @param rename */ getFileBufferByUrl(url: string, rename?: string): Promise; /** * 保存文件(同步) * @param str * @param dest */ saveFileStrSync(str: string, dest: string): string; getMd5ByShell(file: string): string; getMd5(file: string): Promise; /** * 通过Oss Url上传文件,OSS参数已拼接到url * @param url * @param file */ uploadOssByUrl(file: string, url: string): Promise; /** * 通过Http FormData直接上传字符串或者文件到Oss * @param fileOrStr * @param uploadInfo */ uploadOssByForm(fileOrStr: string, uploadInfo: { accessId: string; policy: string; signature: string; key: string; host: string; }): Promise; /** * 通过sts上传文件到Oss * @param file * @param stsCfg */ uploadOssBySts(file: string, stsCfg: { region: string; accessKeyId: string; accessKeySecret: string; bucket: string; stsToken: string; fileNamePrefix: string; }): Promise; /** * 通过url获取文件 * @param url */ getByUrl(url: string): Promise; /** * 通过网络地址获取JSON数据 * @param url */ getJsonByUrl(url: string): Promise; getFileRowCount(target: string): number | undefined; saveFileStream(stream: NodeJS.ReadableStream, dest: string): Promise; /** * 保存文件 * @param str * @param dest */ saveFileStr(str: string, dest: string): Promise; /** * 通过url保存文件 * @param url * @param dest 路径 * @param name 带后缀 */ saveFileUrl(url: string, dest: string, name: string): Promise; /** * 通过url保存压缩文件并自动解压到目标目录 * @param url 支持格式 .tar.gz .tgz .zip .tar .gz * @param dest */ savePressFileAndDeploy(url: string, dest: string): Promise; /** * 按行保存文件 * @param lines * @param dest */ saveFileLines(lines: string[], dest: string): Promise; /** * 获取文件每行的数组 * @param target * @param limit * @param dealer */ getLines(target: string, limit?: number, dealer?: (line: string) => string | undefined): Promise; /** * 读取第一行 * @param target */ getFirstLine(target: string): Promise; /** * 获取结尾的几行文本 * @param target * @param lines */ getTailLinesStr(target: string, lines?: number): shell.ShellString; /** * 获取开头的几行文本 * @param target * @param lines */ getHeadLinesStr(target: string, lines?: number): shell.ShellString; /** * 读取文件字符串 * @param target */ getFileStr(target: string): string | undefined; /** * 创建一个文件写入初始数据 * @param target * @param data */ createFile(target: string, data?: string): string; /** * 获取json文件 * @param target */ getJSON(target: string): unknown; CsvDealer(input: ICsvDealer): Promise; /** * csv 删除查询出的记录 * @param tarcsv * @param index * @param queryval * @class */ CsvDeleteItem(tarcsv: string, index: number, queryval: string): Promise; /** * CsvFindItem * @param tarcsv * @param index * @param queryval * @class */ CsvFindItem(tarcsv: string, index: number, queryval: string): Promise; /** * CsvAddItem * @param tarcsv * @param addRec * @class */ CsvAddItem(tarcsv: string, addRec: string[]): Promise; /** * CsvGetRecs * @param tarcsv * @param limit * @class */ CsvGetRecs(tarcsv: string, limit?: number): Promise; /** * 获取第一条记录 * @param tarcsv * @class */ CsvGetFirst(tarcsv: string): Promise; /** * 读取图片文件转换为 base64 编码字符串 * @param target */ img2base64(target: string): string; /** * 代码行数统计 by cloc * 依赖 perl npx * excludeDir 仅支持dir下的一级目录 */ lineOfCode(opts: { dir: string; out?: string; json?: boolean; excludeExt?: string; includeExt?: string; excludeDir?: string; excludeRegex?: string; }): any; /** * 文件遍历 * @param dir * @param fileList */ dirWalker(dir: string, fileList?: string[]): string[]; };