一步一步学习Node的File System文件系统
来源:互联网 发布:无人驾驶 数据集 编辑:程序博客网 时间:2024/05/19 05:39
异步删除文件:
unlink:分开、解开、拆开
const fs = require('fs');fs.unlink('./example.js', (err) => { if (err) throw err; console.log('successfully deleted /tmp/hello');});
同步删除文件
const fs = require('fs');fs.unlinkSync('./a.js');console.log("delete successfully");
与异步方法相比保证订购。同步方法和异步方法相比之下的话,异步方法是容易出错,请看下例:
const fs = require('fs');fs.rename('./a.js', './world.js', (err) => { if (err) throw err; console.log('renamed complete');});fs.stat('./world.js', (err, stats) => { if (err) throw err; console.log(`stats: ${JSON.stringify(stats)}`);});
提示找不到world.js文件;
使用同步的方法:
rename:重命名
stat:文件状态
const fs = require('fs');fs.rename('./world.js', './hello.js', (err) => { if (err) throw err; fs.stat('./hello.js', (err, stats) => { if (err) throw err; console.log(`stats: ${JSON.stringify(stats)}`); });});
fs检查文件是否存在的方法
/*stats.isFile()
stats.isDirectory()
stats.isBlockDevice()
stats.isCharacterDevice()
stats.isSymbolicLink() (only valid with fs.lstat())
stats.isFIFO()
stats.isSocket()*/
const fs = require('fs');fs.rename('./world.js', './hello.js', (err) => { if (err) throw err; fs.stat('./hello.js', (err, stats) => { if (err) throw err; console.log(`stats: ${JSON.stringify(stats)}`); });});
查看文件或目录的变化,可以监测文件的变动情况:
文件内容改变了 event:change
文件名改变了: event:rename
const fs = require('fs');fs.watch('./a.js', {encoding: 'buffer'}, (event, filename) => { if (filename) console.log(filename); console.log(event); // Prints: <Buffer ...>});
fs.access(path[,mode],callback) 检查文件的访问权限
/*fs.F_OK - 文件是对于进程是否可见,可以用来检查文件是否存在。也是mode 的默认值
fs.R_OK - 文件对于进程是否可读
fs.W_OK - 文件对于进程是否可写
fs.X_OK - 文件对于进程是否可执行。(Windows系统不可用,执行效果等同fs.F_OK)
*/
// 对a.js是否有读和写的权限
fs.access('./a.js', fs.R_OK | fs.W_OK, (err) => { console.log(err ? 'no access!' : 'can read/write');})
fs.appendFile(file, data[, options], callback) 异步的方式向文件中追加数据
/*file:文件名
data:追加的数据
options:可选参数
callbakc操作完文件的回调函数*/
fs.appendFile('./a.js', 'data to append', (err) => { if (err) throw err; console.log('The "data to append" was appended to file!');});
fs.appendFileSync(file, data[, options]) 同步的方式追加数据
fs.open(path, flags, [mode], [callback(err,fd)])
以异步的方式打开文件。
在POSIX系统中,path被认为是默认存在的(即使该路径下的文件是不存在的)
flag标识 可能 或 可能不在网络文件系统下运行:
'r' - 以读取模式打开文件。
'r+' - 以读写模式打开文件。
'rs' - 使用同步模式打开并读取文件。指示操作系统忽略本地文件系统缓存。
'rs+' - 以同步的方式打开,读取 并 写入文件。
注意:这不是让fs.open变成同步模式的阻塞操作。如果想要同步模式请使用fs.openSync()。
'w' - 以读取模式打开文件,如果文件不存在则创建
'wx' - 和 ' w ' 模式一样,如果文件存在则返回失败
'w+' - 以读写模式打开文件,如果文件不存在则创建
'wx+' - 和 ' w+ ' 模式一样,如果文件存在则返回失败
'a' - 以追加模式打开文件,如果文件不存在则创建
'ax' - 和 ' a ' 模式一样,如果文件存在则返回失败
'a+' - 以读取追加模式打开文件,如果文件不存在则创建
'ax+' - 和 ' a+ ' 模式一样,如果文件存在则返回失败
mode 用于创建文件时给文件制定权限,默认0666
fs.open('./aa.js', 'a', function(err, fd) { if ( err ) { throw err; } console.log(fd); fs.futimes(fd, 11012349876, 11012349876, function( err ) { if ( err ) { throw err; } console.log('futimes complete'); fs.close(fd, function(){ console.log('Done'); }) })})
fs.futimes(fd, atime, mtime, callback);
更改一个文件所提供的文件描述符引用的文件的时间戳。
fd:修改的文件
atime:访问的时间 access time
mtime:修改的时间 modify time
callback:回调函数
fs.chmod(path, mode, callback);
该方法以异步的方式来改写文件的读写权限。
操作完成后的回调只接收一个参数,可能会出现异常信息
1. path 文件路径
2. mode 读写权限(如:777)
3. callback 回调
fs.chmodSync(path, mode)
该方法以同步的方式来改写文件的读写权限。
fs.close(fd, [callback(err)])
以异步的方式关闭文件。
fs.closeSync(fd)
以同步的方式关闭文件。
fs.createReadStream('a.js', {start: 90, end: 99});
fs.createWriteStream("a.js", {mode:777});
fs.exists(path, callback)
// 同步文件是否存在
fs.existsSync(path)
// 同步文件是否存在
fs.mkdir(path[, mode], callback)
// 步步创建目录
fs.mkdirSync(path[, mode], callback)
// 同步创建目录
fs.mkdtemp(prefix, callback)
// 创建异步临时目录
fs.mkdtempSync(template)
// 创建同步临时目录fs.fsync(fd, callback);
同步磁盘缓存。
fs.open('./aa.js', 'a', function(err, fd) { if (err) { throw err; } fs.fstat(fd, function(err, stats) { if (err) { throw err; } console.log(stats); }); fs.fsync(fd, function(err) { if ( err ) { throw err; } console.log("file closed"); })})
0 0
- 一步一步学习Node的File System文件系统
- Node.js的文件系统模块(File System)
- linux下的简单文件系统(file system)
- File System 文件系统模块
- 一步一步学习node
- Node.js学习笔记(2、File System模块)
- Google文件系统(Google File System)
- nodejs 之 file system 文件系统
- Distributed File System 分布式文件系统
- Parallel File System 并行文件系统
- Linux文件系统只读Read-only file system的解决方法
- Notes: Disk Abstraction -- File System(操作系统的文件系统)
- Linux文件系统只读Read-only file system的快速解决方法
- Google文件系统(Google File System)论文
- Google文件系统(Google File System)论文
- 网络文件系统(Network File System)简介
- 分布式文件系统 and Google File System
- 【转】创建android文件系统(Root file system)
- ios比较confuse的几个structure
- 超简单的网络爬虫,附个自动下载电影种子的demo
- 【BZOJ】1083: [SCOI2005]繁忙的都市 二分+并查集
- jquery select
- Android PackageManager Service详解(5.1源码)(二)
- 一步一步学习Node的File System文件系统
- iOS使用Charts框架绘制—柱形图
- 如何将PDF文件转换成清晰的图片
- 用GDB调试程序
- 学习linux内核
- WPF中图形表示语法详解(Path之Data属性语法)
- 正则表达式
- odoo9.0自动化升级解决方案
- 网络编程--基于java socket通信,实现多个客户端连接同一服务端