Node.js: Windows 如何知道在不同大小写下与内部文件名匹配的真实文件名

Node.js: How to know real filename which matches an internal filename in different case on Windows

我的 Node.js 程序想要在 Windows 机器上读取文件 "test.txt" 的内容。它使用 fs.existsSync() 检查文件是否存在并读取其内容。但是现在我希望程序在磁盘上的文件名实际上是 "TEST.txt" 或任何其他与我的程序正在寻找的名称不同的名称时给出错误或警告,例如"test.txt"。

有没有一种简单的方法可以弄清楚即使 existsSync() 告诉我文件存在,磁盘上的文件的名称与我用来查找它的文件名的大小写不同?

您可以使用 fs.readdir 获取目录中所有文件的列表,然后比较文件名以查看是否匹配。

var fs = require('fs');

var path = __dirname;
var filename = 'test.txt';

var files = fs.readdirSync(path);
var exists = files.includes(filename);

// true if file on disk is "test.txt",
// false if file on disk is "TEST.txt" 
console.log(exists);