您的位置:首页 > Web前端 > Node.js

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

2018-01-27 17:41 711 查看
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])监听文件是否发生改变,移除监听使用unwatchFilefs.watch("fs.txt", function(eventType, filename) {
console.log(eventType); //change | rename
if(filename) {
console.log(filename + '发生了改变'); // fs.txt发生了改变
} else {
console.log(filename + '没有改变');
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Node.js fs 文件系统