easy-yandex-s3
Version:
Use Yandex S3 API to upload, list, download and remove files from Yandex Cloud service.
42 lines (37 loc) • 1.43 kB
text/typescript
import * as fs from 'fs';
import * as path from 'path';
type ReadDirReturns = {
fullFilePath: string;
relativeDirPath: string;
fileName: string;
}[]
/**
* Получение массива всех вложенных файлов и папок и их файлов и папок и их файлов и папок...
* @param {string} dirPath Путь до папки, которую сканируем
* @param {string=} originalFilePath
* @param {Array} ignoreList
*/
function ReadDir(dirPath: string, originalFilePath: string, ignoreList: string[]): ReadDirReturns {
if (!originalFilePath) originalFilePath = dirPath;
const dirFiles = fs.readdirSync(dirPath);
const paths = [];
for (const fileName of dirFiles) {
const fullFilePath = path.join(dirPath, fileName);
const relativeFilePath = fullFilePath.replace(originalFilePath, '');
const relativeDirPath = relativeFilePath.replace(fileName, '');
if (ignoreList.includes(fileName)) continue;
if (
ignoreList.includes(relativeFilePath.replace(/\\/g, '/')) ||
ignoreList.includes(relativeFilePath.replace(/\//g, '\\'))
)
continue;
if (fs.lstatSync(fullFilePath).isDirectory()) {
paths.push(...ReadDir(fullFilePath, originalFilePath, ignoreList));
continue;
}
paths.push({ fullFilePath, relativeDirPath, fileName });
}
// console.log(paths);
return paths;
}
export default ReadDir;