如何在nodejs目录中获取第一个扩展名为.txt的文件

How to get the first file with a .txt extension in a directory with nodejs?

本文关键字:扩展名 第一个 txt 文件 获取 nodejs      更新时间:2023-09-26

我所有文件所在的目录是:"/usr/home/jordan",我在那里有很多文件(在目录本身中,但有一个文件的扩展名为.txt。

使用nodejs和fs,我想将第一个扩展名为txt的文件(或任何文件)放入"mytxtfilepath"中。我在整个目录中只有一个.txt文件(在许多其他文件中,但具有不同的扩展名)。单个.txt文件可以命名为ANYTING,我不能保证在任何给定的时间名称是什么,只能保证它以.txt结尾:

var homedir = "/usr/home/jordan";
var mytxtfilepath=homedir + "???????";
fs.readfile(mytxtfilepath, function(err,data) {
  console.log(data);
});

如何在不硬编码txt文件本身名称的情况下将正确的路径放置到txt文件?

var files = fs.readdirSync(homedir);
var path = require('path');
for(var i in files) {
   if(path.extname(files[i]) === ".txt") {
       //do something
   }
}

您也可以使用Glob模块。它对我很管用!

var glob = require( 'glob' );  
var myPath= "/fileFolder/**/*.txt";
glob(myPath, function (er, files) {
    // Files is an array of filenames.
    // Do something with files.
})

您可以使用fs.readder列出文件并找到以.txt:结尾的文件

var myPath = "/usr/home/jordan";
fs.readdir(path, function(fileNames) {
    for(var i = 0; i < fileNames.length; i++) {
      var fileName = fileNames[i];
      if(path.extname(fileName) === ".txt") {
        fs.readfile(path.join(myPath,fileName), function(err,data) {
          console.log(data);
        });
        break;
      }
    }
  }
);

请注意,这需要路径,因此在顶部添加var path = require("path")

您可以使用fs.readdir和path.extname

var fs = require('fs')
  , path = require('path');
function getFileWithExtensionName(dir, ext) {
  fs.readdir(dir, function(files){
    for (var i = 0; i < files.length; i++) {
      if (path.extname(files[i]) === '.' + ext)
        return files[i]
    }
  });
}
var homedir = "/usr/home/jordan";
var mytxtfilepath= getFileWithExtensionName(homedir, 'txt')
fs.readfile(mytxtfilepath, function(err,data) {
  console.log(data);
});

惰性解决方案:

npm install --save readdir

然后

const {read} = require('readdir');
read("/usr/home/jordan", "**/*.txt", (err, paths) =>
    console.log(paths)
);
相关文章: