当前位置: 首页 > 知识库问答 >
问题:

如何从上次修改的日期筛选文件

傅志用
2023-03-14

我需要知道如何才能提到"过滤"的文件,例如每天的文件:2到12。

const fs = require('fs');

const testFolder = 'C:/Users/duff/Downloads/xmlpath/';

fs.readdirSync(testFolder).forEach(file => {  //Reading files from folder

        fs.stat(testFolder+file,'utf8', function(err,data){

      console.log(data.mtime); // print the last modified date
    }
    );
  });

我已经尝试与此代码,但我得到所有的文件日期没有过滤他们

文件日期的结果

共有2个答案

江俊能
2023-03-14

这就是我保存文件和检索最终文件时使用的一些附加内容的方式:

router.post("/download", function (req, res) {
  var yourscript = exec("./export.sh", (error, stdout, stderr) => {
    console.log(stdout);
    console.log(stderr);
  });

  function downloadLatestFile() {
    const dirPath = "/Users/tarekhabche/Desktop/awsTest/reports";
    const lastFile = JSON.stringify(getMostRecentFile(dirPath));
    fileDate = lastFile.substr(14, 19);
    console.log(fileDate);
    const fileToDownload = `reports/info.${fileDate}.csv`;
    console.log(fileToDownload);
    res.download(fileToDownload);
  }
  setTimeout(function () {
    downloadLatestFile();
  }, 1000);
});

const getMostRecentFile = (dir) => {
  const files = orderRecentFiles(dir);
  return files.length ? files[0] : undefined;
};

const orderRecentFiles = (dir) => {
  return fs
    .readdirSync(dir)
    .filter((file) => fs.lstatSync(path.join(dir, file)).isFile())
    .map((file) => ({ file, mtime: fs.lstatSync(path.join(dir, file)).mtime }))
    .sort((a, b) => b.mtime.getTime() - a.mtime.getTime());
};

const dirPath = "reports";
getMostRecentFile(dirPath);

上官华池
2023-03-14

所以我认为你要做的是提供一个日期范围,并返回该范围内的文件。

我把时间去掉然后和日期做比较

const fs = require('fs')

const testFolder = './test'

const parseDate = timestamp => new Date(timestamp).toISOString().slice(0, 10)

const handler = async (f, t) => {
    const startDate = parseDate(f)
    const endDate = parseDate(t)

    const timestamp = file => {
        return new Promise((resolve, reject) => {
            fs.stat(`${testFolder}/${file}`, 'utf8', (err, data) => {
                if (err) return reject(err)
                return resolve({ filename: `${testFolder}/${file}`, date: parseDate(data.mtime) })
            })
        })
    }

    const timestamps = await Promise.all(fs.readdirSync(testFolder).map(timestamp))

    return timestamps.filter(({ date }) => date >= startDate && date <= endDate)
}

handler('2020-04-01', '2020-04-10')

这将生成一个对象数组,如下所示

[ { filename: 'C:/Users/duff/Downloads/xmlpath/test1', date: '2020-04-09' },
  { filename: 'C:/Users/duff/Downloads/xmlpath/hello', date: '2020-04-09' },
  { filename: 'C:/Users/duff/Downloads/xmlpath/new', date: '2020-04-10' },
  { filename: 'C:/Users/duff/Downloads/xmlpath/yes', date: '2020-04-10' } ]
 类似资料:
  • 问题内容: 想知道目录的上次修改日期何时更改。我修改了特定目录中的文件(通过FTP),但目录的LMD不变。应该如何运作? 问题答案: 当添加,删除或重命名文件或子目录时,目录本身上的mtime(修改时间)会更改。 修改目录中文件的内容不会更改目录本身,也不会更新文件或子目录的修改时间。如果更改目录的权限,则ctime会更改,而mtime不会。

  • 我在databricks中安装了一个s3 bucket,我可以看到文件列表,也可以使用python读取文件 我想找出我正在阅读的文件的上次修改日期,我找不到太多,但java选项数据砖读取Azure blob的上次修改日期为azure blob,数据砖中有一个python本机选项来读取文件元数据。

  • 问题内容: 我的一位同事说,SQL Server将最后修改的日期和时间保存在每条记录的“隐藏列”中。我很确定他说错了。你能向我确认一下吗? 问题答案: 正如其他人所暗示的那样,您的同事一定在胡说八道,或者指的是其他东西。为此,记录或页面的磁盘结构不包含对上次更新时间的任何引用。虽然可以在对象级别找到有关上次更新的信息,但在记录/行级别上找不到此类信息。

  • 我有一个Azure Blob存储安装到我的Database ricks hdfs。有没有办法在数据库中获取Blob的最后修改日期? 这就是我阅读blob内容的方式:

  • 我需要获取Azure Databricks下DBFS装载点(ADLS Gen1)中所有文件夹和文件的最后修改日期。文件夹结构如下: 使用以下Python代码获取最后修改日期: 从上面的代码中,我得到了所有包含文件的文件夹的正确修改日期。 但对于空文件夹,它会给出当前日期。不是上次修改日期。 然而,当我硬编码空文件夹的路径时,它会给出正确的修改日期: 打印(datetime.fromtimestam

  • 我正在开发一个应用程序,它将在Dropbox上获取文件的最后修改时间和日期,也将在本地计算机上获取文件的最后修改日期(上载时间)和时间,然后在对时间和日期进行比较后,应用程序将决定是上载该文件还是从Dropbox下载该文件。现在我被这个问题困住了,我怎样才能得到最后修改的日期