如何在 nodejs 中'OS agnostic'文件路径?



我现在正在处理一些代码,这些代码在我们的集成测试中搞砸了,因为我们在 Windows 机器的 EC2 实例上运行测试作业。修复文件名太长问题后,许多路径仍然无法正确解析,因为其中许多路径都是针对 UNIX 硬编码的。

我正在研究nodejs的路径模块,但我不确定需要更改哪些内容才能使路径名在两个操作系统上都有效(当然反斜杠除外(。我是否需要为 Windows 添加这些路径名前缀?

下面是一些失败的代码:

function getDirectories(srcpath) {
//srcPath looks like graph-validator/tests/data/graph-examples/
return fs.readdirSync(srcpath).filter(function(file) {
return (
file !== '.git' && fs.statSync(path.join(srcpath, file)).isDirectory()
)
})
}
const dataDirectory = 'graph-validator/tests/data/'
// Generate valid input for included minimal tests
function createDatasetFileList(path) {
const testDatasetPath = `${dataDirectory}${path}`
//path is often 'graph-examples/ds001/' 
if (!isNode) {
return createFileList(testDatasetPath)
} else {
return testDatasetPath
// testDatasetPath = graph-validator/tests/data/graph-examples/ds001/
}
}

我尝试了path.join(),这似乎部分解决了这个问题,至少是斜杠。 如何使这些路径名在操作系统中完全不可知?

我认为您要查找的是path.sep? https://nodejs.org/api/path.html#path_path_sep

相关内容

  • 没有找到相关文章

最新更新