fs.statsync
时间: 2023-08-09 15:01:15 浏览: 101
fs.statsync 是 Node.js 的 fs 模块中的一个同步方法,用于获取文件或目录的详细信息。它会返回一个 fs.Stats 对象,该对象包含了一些关于文件或目录的属性信息,如文件大小、创建时间、修改时间等。使用 fs.statsync 方法,可以在不阻塞事件循环的情况下同步地获取文件或目录的信息。
使用 fs.statsync 方法非常简单,只需要传入一个文件或目录的路径作为参数即可。例如:
```javascript
const fs = require('fs');
try {
const stats = fs.statSync('/path/to/file');
console.log(stats);
} catch (error) {
console.error('获取文件信息失败:', error);
}
```
上述代码中,我们使用 fs.statSync 方法获取了指定路径的文件信息,并将返回的 fs.Stats 对象打印出来。如果获取文件信息失败,将会捕获到异常并打印出错误信息。
fs.Stats 对象包含了一些常用的方法和属性,用于获取文件或目录的详细信息。例如,可以通过 stats.isFile() 方法判断一个路径是否为文件,通过 stats.isDirectory() 方法判断一个路径是否为目录。还可以通过 stats.size 属性获取文件的大小,通过 stats.birthtime 属性获取文件的创建时间,通过 stats.mtime 属性获取文件的修改时间等。
需要注意的是,由于 fs.statsync 方法是同步的,这意味着它会在获取文件信息期间阻塞事件循环,直到操作完成才会继续执行后续代码。因此,在处理大文件或者大量文件时,最好使用异步方法 fs.stat() 来避免阻塞事件循环的情况发生。
总结来说,fs.statsync 是一个用于同步获取文件或目录信息的方法,能够返回一个包含详细属性的 fs.Stats 对象。通过该方法,我们可以方便地获取文件或目录的大小、创建时间、修改时间等信息。使用时需要注意避免阻塞事件循环,特别是在处理大文件或大量文件时。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
const fs = require("fs"); const http = require("http"); const {promisify} = require("util"); const path = require("path"); let server = http.createServer(async (req,res)=>{ let urlObj = new URL(req.url,"http://"+req.headers.host); let removeDir = require("./removedir") let {pathname}=urlObj; res.setHeader("Content-Type","text/html;charset=utf-8") if(pathname ==="/"){ let pathurl = "./";/* 当前目录 */ let showurl = urlObj.searchParams.get("showurl"); if(showurl){ pathurl = showurl; } /* 判断是否为文件 */ let stat = fs.statSync(pathurl); if (stat.isFile()) { // 是文件 let filedata = await promisify(fs.readFile)(pathurl); res.write(filedata); res.end(); } // 判断是否需要执行删除的逻辑 let delpath = urlObj.searchParams.get("delpath"); if (delpath) { // 有 delpath参数 ,那么证明需要删除逻辑; if (fs.existsSync(delpath)) { let stat = fs.statSync(delpath); if (stat.isFile()) { // 是文件 : fs.unlinkSync(delpath); } else { // 是目录 removeDir(delpath); } } } let resdata = await promisify(fs.readdir)(pathurl); let tablestr = "文件名 创建时间 操作 "; resdata.forEach(item=>{ let myurl = path.join(pathurl,item); let stat = fs.statSync(myurl); console.log(stat); tablestr += ${item} ${stat.birthtime} 删除 }) //console.log(tablestr,"????????????????????????????") tablestr += ""; res.write(tablestr); res.end(); } } ) server.listen(8888);
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)