11

すべてのファイルが入っているディレクトリは「/usr/home/jordan」で、その下に多くのファイルがあります (ディレクトリ自体にありますが、拡張子が .txt のファイルが 1 つあります。

nodejs と fs を使用して、拡張子が txt の最初のファイル (または任意のファイル) を "mytxtfilepath" に配置します。ディレクトリ全体に単一の.txtファイルしかありません(他の多くのファイルの中で、拡張子は異なります)単一の.txtファイルには任意の名前を付けることができます。特定の時点で名前がどうなるかは保証できません。 。TXT:

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

txt ファイル自体の名前をハードコーディングせずに、txt ファイルへの正しいパスを設定するにはどうすればよいですか?

4

5 に答える 5

16
var files = fs.readdirSync(homedir);
var path = require('path');

for(var i in files) {
   if(path.extname(files[i]) === ".txt") {
       //do something
   }
}
于 2013-07-08T02:03:37.500 に答える
1

Glob モジュールも使用できます。それは私にとってはうまくいきます!

var glob = require( 'glob' );  
var myPath= "/fileFolder/**/*.txt";

glob(myPath, function (er, files) {
    // Files is an array of filenames.
    // Do something with files.
})
于 2015-09-30T15:55:13.083 に答える
0

fs.readdirを使用してファイルを一覧表示し、 で終わるファイルを見つけることができ.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")が必要なので、先頭に追加してください。

于 2013-07-08T02:03:50.697 に答える
0

fs.readdirpath.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);
});
于 2013-07-08T02:13:15.100 に答える
0

怠惰な解決策:

npm install --save readdir

その後

const {read} = require('readdir');
read("/usr/home/jordan", "**/*.txt", (err, paths) =>
    console.log(paths)
);
于 2017-05-10T00:13:28.897 に答える