nodejs系列(6)文件系统处理模块fs

Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。 Node 导入文件系统模块(fs)语法如下所示:

var fs = require("fs");
该API的主要功能包括创建目录、读写文件、重命名、删除文件等。

(注)操作的文件路径可以是相对路径也可以是绝对路径,若为相对路径时,以入口文件index.js作为路径起始位置。

(注)API文档中若参数里带有[,option],均表示为可选参数,详细情况Node.js文档,这里就不标出来了。


fs.existsSync(path)

检测文件或文件夹是否存在,如果文件存在,则返回 true,否则返回 false。

console.log(fs.existsSync("api")); //true|false 检测文件夹api是否存在
console.log(fs.existsSync("fs.txt")); //true|false 检测文件fs.txt是否存在


fs.mkdir(path[, mode], callback) 

异步创建文件夹

fs.mkdir("fsdir", function(err) {
	if(err) {
		console.log("文件夹已存在");
	} else {
		console.log("文件夹创建成功");
	}
});

fs.mkdirSync(path[, mode])

同步创建文件夹

try {
	fs.mkdirSync("fsdir");
	console.log("文件夹创建成功");
} catch(e) {
	console.log("文件夹已存在");
}


fs.writeFile(file, data[, options], callback) 

异步创建文本文件

fs.writeFile("fs.txt", "Hello World", function(err) {
	if(err) {
		console.log("文本创建失败");
	} else {
		console.log("文本创建成功");
	}
});

fs.writeFileSync(file, data[, options]) 

同步创建文本文件

try {
	fs.writeFileSync("fs.txt", "Sync Hello World");
	console.log("文本创建成功");
} catch(e) {
	console.log("文本创建失败");
}

fs.appendFile(file, data[, options], callback) 

异步追加文本

fs.appendFile("fs.txt", "追加", function(err) {
	if(err) {
		console.log("文本追加失败");
	} else {
		console.log("文本追加成功");
	}
});


fs.appendFileSync(file, data[, options]) 

同步追加文本

try {
	fs.appendFileSync("fs.txt", "同步追加");
	console.log("文本追加成功");
} catch(e) {
	console.log("文本追加失败");
}

fs.readFile(path[, options], callback) 

异步读取文本

fs.readFile("fs.txt", function(err, data) {
	if(err) {
		console.log("没有找到文件fs.txt");
	} else {
		console.log(data.toString());
	}
});

fs.readFileSync(path[, options]) 

同步读取文本

var buf = fs.readFileSync("fs.txt");
console.log(buf.toString("utf-8"));

fs.readdir(path[, options], callback)

异步读取目录内容

fs.readdir("api", function(err, files) {
	if(err) {
		console.log("没有找到文件夹api");
	} else {
		for(var i = 0; i < files.length; i++) {
			console.log(files[i]); // 文件名称
		}
	}
});

fs.readdirSync(path[, options]) 

同步读取目录内容

console.log(fs.readdirSync("api")); // [ 'API-Buffer.js', 'API-fs.js', 'API-path.js', 'API-url.js' ]

fs.rename(oldPath, newPath, callback) 

异步重命名

fs.rename('fs.txt', 'newfs.txt', function(err) {
	if(err) {
		console.log('重命名失败');
	} else {
		console.log('重命名成功');
	}
});

fs.renameSync(oldPath, newPath)

同步重命名

try {
	fs.renameSync('fs.txt', 'newfs.txt');
	console.log("重命名成功");
} catch(e) {
	console.log("重命名失败");
}

fs.stat(path, callback)

获取文件状态,包括大小,创建时间等

fs.stat('fs.txt', function(err, stat) {
	if(err) {
		console.log("找不到文件fs.txt");
	} else {
		console.log(stat);
	}
});

fs.unlink(path, callback) 

异步删除文件

fs.unlink("fs.txt", function(err) {
	if(err) {
		console.log("删除失败");
	} else {
		console.log("删除成功");
	}
});

fs.unlinkSync(path) 

同步删除文件

try{
	fs.unlinkSync("fs.txt");
	console.log("删除成功");
}catch(e){
	console.log("删除失败");
}

fs.access(path[, mode], callback) 

检测对文件或文件夹是否有读写的权限

fs.access('api', fs.constants.R_OK | fs.constants.W_OK, function(err) {
	console.log(err ? 'no access!' : 'can read/write'); // can read/write
});
fs.access('fs.txt', fs.constants.R_OK | fs.constants.W_OK, function(err) {
	console.log(err ? 'no access!' : 'can read/write'); // can read/write
});

fs.watch(filename[, options][, listener])

监听文件是否发生改变,移除监听使用unwatchFile

fs.watch("fs.txt", function(eventType, filename) {
	console.log(eventType); //change | rename
	if(filename) {
		console.log(filename + '发生了改变'); // fs.txt发生了改变
	} else {
		console.log(filename + '没有改变');
	}
});


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值