如何使用nodejs获取带有.txt扩展名的第一个文件?

我的所有文件所在的目录是:'/ usr / home / jordan',我在那里有许多文件(在目录本身,但是一个文件以.txt扩展名命名)。

使用nodejs和fs,我想把第一个带有txt扩展名的文件(或任何文件)放到“mytxtfilepath”中。 我只在整个目录中有一个单独的.txt文件(在许多其他文件中,但有不同的扩展名)。单个.txt文件可以被命名为ANYTHING,我不能保证在任何给定的时间名称是什么,只是它以。文本:

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

如何将正确的path到我的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.readdir列出文件并find以.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; } } } ); 

注意这需要path,所以在顶部添加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); }); 

懒惰的解决scheme:

 npm install --save readdir 

接着

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