投稿

指定のフォルダ内のファイル数を一定に保つ

指定のフォルダ内のファイル数を一定に保つ

deleteExtraFile(dirPath, limit=100){
    const files = fs.readdirSync(dirPath).filter(function(file){
      // .XXX は除外
      return !/^\..+$/.test(file);
    });

    let fileCreatedAts = [];
    // fileの生成時間を抽出
    for (let i = 0; i < files.length; i++) {
      const filename = files[i];

      const fileStat = fs.statSync(path.join(dirPath, filename));

      const filedata = {
        filename: filename,
        birthtimeMs: fileStat['birthtimeMs'],
      };
      fileCreatedAts.push(filedata);
    }

    // 日付を降順でソート
    fileCreatedAts.sort(function(a, b) {
      return b['birthtimeMs'] - a['birthtimeMs'];
    });

    const deleteFiles = fileCreatedAts.slice(limit);

    // 余分なファイルを削除
    for (let i = 0; i < deleteFiles.length; i++) {
      const deleteFile = deleteFiles[i];
      fs.unlink(path.join(dirPath, deleteFile['filename']), function (err) {});
    }
  }

トレンドのタグ