2022-10-11 15:25:18 +08:00

74 lines
2.1 KiB
JavaScript

"use strict";
/**
* @author doubledream
* @desc 文件处理方法
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isDirectory = exports.isFile = exports.writeFile = exports.readFile = exports.getSpecifiedFiles = void 0;
const path = require("path");
const fs = require("fs");
/**
* 获取文件夹下符合要求的所有文件
* @function getSpecifiedFiles
* @param {string} dir 路径
* @param {ignoreDirectory} 忽略文件夹 {ignoreFile} 忽略的文件
*/
function getSpecifiedFiles(dir, ignoreDirectory = '', ignoreFile = '') {
return fs.readdirSync(dir).reduce((files, file) => {
const name = path.join(dir, file);
const isDirectory = fs.statSync(name).isDirectory();
const isFile = fs.statSync(name).isFile();
if (isDirectory) {
return files.concat(getSpecifiedFiles(name, ignoreDirectory, ignoreFile));
}
const isIgnoreDirectory = !ignoreDirectory ||
(ignoreDirectory &&
!path
.dirname(name)
.split('/')
.includes(ignoreDirectory));
const isIgnoreFile = !ignoreFile || (ignoreFile && path.basename(name) !== ignoreFile);
if (isFile && isIgnoreDirectory && isIgnoreFile) {
return files.concat(name);
}
return files;
}, []);
}
exports.getSpecifiedFiles = getSpecifiedFiles;
/**
* 读取文件
* @param fileName
*/
function readFile(fileName) {
if (fs.existsSync(fileName)) {
return fs.readFileSync(fileName, 'utf-8');
}
}
exports.readFile = readFile;
/**
* 读取文件
* @param fileName
*/
function writeFile(filePath, file) {
if (fs.existsSync(filePath)) {
fs.writeFileSync(filePath, file);
}
}
exports.writeFile = writeFile;
/**
* 判断是文件
* @param path
*/
function isFile(path) {
return fs.statSync(path).isFile();
}
exports.isFile = isFile;
/**
* 判断是文件夹
* @param path
*/
function isDirectory(path) {
return fs.statSync(path).isDirectory();
}
exports.isDirectory = isDirectory;
//# sourceMappingURL=file.js.map