0.6.0 • Published 2 months ago

@hongfangze/filestream v0.6.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

@hongfangze/filestream 文件操作帮助类

介绍

文件的一些操作

/**
 * 复制文件夹
 * @param {string} src 源地址
 * @param {string} dest 目标地址
 * @param {Boolean} cover 是否覆盖已有文件
 */
const _copyFolder = (src: string, dest: string, cover?: boolean): boolean/**
 * 类似node_module方式读取文件数据
 * @param {string} filename 文件名或者部分路径
 * @param {({ encoding?: null | undefined; flag?: string | undefined; } | null)} [options]
 * @return {*}  {Buffer}
 */
requireFileSync(
    filename: string,
    options?: { encoding?: null | undefined; flag?: string | undefined; } | null
): Buffer

/**
 * 同步创建文件夹,可递归创建
 * @param {String} dir 需要创建的文件夹路径
 * @returns
 */
mkdirSync(dir: string): boolean

/**
 * 创建空白文件
 * @param {String} file 文件路径
 */
mkfileSync(file: string): void

/** 
 * 递归删除文件夹
*/
rmdirSync(path: string): void

/**
 * 递归获取文件名
 * @param {String} dir
 * @returns
 */
findfilesSync(dir: string): string[]

/**
 * 获取文件md5
 * @param {*} file
 * @returns
 */
md5(file: string): Promise<string>

/**
 * 将文件夹打包压缩成zip
 * 
 * @deprecated [#1] version 0.0.3
 * 
 * @param {Array<String>} files 被打包的文件全路径
 * @param {String} filepath 被打包的文件夹
 * @param {String} filename 打包压缩后的文件名全路径,如:/xxx.zip
 * @returns
 */
zip(filepath: string, filename: string): Promise<void>

/**
 * 压缩文件
 * @param {string[]} src 需要压缩的文件集合
 * @return {*}  {Promise<void>}
 */
compressing(src: string[]): Promise<void>
/**
 * 压缩文件
 * @param {string[]} src 需要压缩的文件集合
 * @param {{ path?: string, filename?: string, extname?: string }} dest 压缩文件目标配置,文件路径、名称、扩展名
 * @return {*}  {Promise<void>}
 */
compressing(src: string[], dest: { path?: string, filename?: string, extname?: string }): Promise<void>
/**
 * 压缩文件
 * @param {string[]} src 需要压缩的文件集合
 * @param {{ path?: string, filename?: string, extname?: string }} dest 压缩文件目标配置,文件路径、名称、扩展名
 * @param {('zip' | 'gzip' | 'tar' | 'tgz')} mode 压缩方式
 * @return {*}  {Promise<void>}
 */
compressing(src: string[], dest: { path?: string, filename?: string, extname?: string }, mode: 'zip' | 'gzip' | 'tar' | 'tgz'): Promise<void>

/**
 * 解压文件
 * @param {string} src 源文件地址
 * @return {*}  {Promise<void>}
 */
uncompressing(src: string): Promise<void>;
/**
 * 解压文件
 * @param {string} src 源文件地址
 * @param {string} dest 解压目标地址
 * @return {*}  {Promise<void>}
 */
uncompressing(src: string, dest: string): Promise<void>;
/**
 * 解压文件
 * @param {string} src 源文件地址
 * @param {string} dest 解压目标地址
 * @param {('zip' | 'gzip' | 'tar' | 'tgz')} mode 解压方式,需要与压缩方式一致
 * @return {*}  {Promise<void>}
 */
uncompressing(src: string, dest: string, mode: 'zip' | 'gzip' | 'tar' | 'tgz'): Promise<void>

/**
 * 大文件复制
 * @param {string} src 要复制的文件
 * @param {string} dest 复制的目标文件地址
 * @return {*}  {Promise<void>}
 */
copyLargeFile(src: string, dest: string): Promise<void>

/**
 * 大文件读取
 * @param {string} src 要读取的文件
 * @return {*}  {Promise<string[]>}
 */
readLargeFile(src: string): Promise<string[]> 

/**
 * 复制文件夹
 * @param {string} src 源地址
 * @param {string} dest 目标地址
 * @param {Boolean} cover 是否覆盖已有文件
 */
copyFolder = (src: string, dest: string, cover?: boolean): Promise<boolean

/**
 * 移动文件夹
 * @param {string} src 源地址
 * @param {string} dest 目标地址
 * @param {Boolean} cover 是否覆盖已有文件
 */
moveFolder(src: string, dest: string, cover?: boolean): Promise<boolean>

/**
 * 获取文件的文件类型
 * @param {string} src 文件地址
 * @param {number} [chunkLength] 读取文件前多少字节(只要大于等于幻数所在的字节数即可,如果不确定可以不传)
 * @return {*}  {Promise<{ ext: string, mime: string }>}
 */
const fileType = async (src: string, chunkLength?: number): Promise<{ ext: string, mime: string }>

版本迭代记录

2024-03-22 v0.6.0

  • 增加fileType函数,基于文件的MagicNumber判断文件的文件类型(修改文件后缀名或删除文件后缀名仍旧可以正确的判断出文件原有的文件类型)

2024-03-14 v0.5.0

  • 添加文件夹复制和移动2个函数
0.6.0

2 months ago

0.5.0

2 months ago

0.3.0

4 months ago

0.0.3

9 months ago

0.2.0

8 months ago

0.1.1

9 months ago

0.0.2

9 months ago

0.0.1

12 months ago