我似乎无法获得任何解释如何执行此操作的搜索结果。
我想要做的就是能够知道给定路径是文件还是目录(文件夹)。
原文由 ThomasReggi 发布,翻译遵循 CC BY-SA 4.0 许可协议
我似乎无法获得任何解释如何执行此操作的搜索结果。
我想要做的就是能够知道给定路径是文件还是目录(文件夹)。
原文由 ThomasReggi 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们可以使用新的 fs.promises API
const fs = require('fs').promises;
(async() => {
const stat = await fs.lstat('test.txt');
console.log(stat.isFile());
})().catch(console.error)
这是 异步 检测路径是文件还是目录的方法,这是 node.js 中推荐的方法。使用 fs.lstat
const fs = require("fs");
let path = "/path/to/something";
fs.lstat(path, (err, stats) => {
if(err)
return console.log(err); //Handle error
console.log(`Is file: ${stats.isFile()}`);
console.log(`Is directory: ${stats.isDirectory()}`);
console.log(`Is symbolic link: ${stats.isSymbolicLink()}`);
console.log(`Is FIFO: ${stats.isFIFO()}`);
console.log(`Is socket: ${stats.isSocket()}`);
console.log(`Is character device: ${stats.isCharacterDevice()}`);
console.log(`Is block device: ${stats.isBlockDevice()}`);
});
使用同步 API 时注意:
使用同步形式时,会立即抛出任何异常。您可以使用 try/catch 来处理异常或允许它们冒泡。
try{
fs.lstatSync("/some/path").isDirectory()
}catch(e){
// Handle error
if(e.code == 'ENOENT'){
//no such file or directory
//do something
}else {
//do something else
}
}
原文由 Marcos Casagrande 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2.2k 阅读✓ 已解决
5 回答2.3k 阅读
2 回答1.1k 阅读✓ 已解决
3 回答1.3k 阅读
3 回答1.5k 阅读
1 回答713 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
下面应该告诉你。从 文档:
笔记:
上述解决方案 将
throw
一个Error
如果;例如,file
或directory
不存在。如果您想要
true
或false
方法,请尝试fs.existsSync(dirPath) && fs.lstatSync(dirPath).isDirectory();
正如约瑟夫在下面的评论中提到的那样。