1. fs.stat 检测是文件还是目录

fs.stat('html',function(err,stats){
if(err){
console.log(err); return false;
} console.log('文件:'+stats.isFile());
console.log('目录:'+stats.isDirectory()); })

2. fs.mkdir 创建目录

  //接收参数:
//path 将创建的目录路径
//mode 目录权限(读写权限),默认0777
//callback 回调,传递异常参数err fs.mkdir('css',function(err){
if(err){
console.log(err); return false;
}
console.log('创建目录成功'); })

3. fs.writeFile 创建写入文件

//filename      (String)            文件名称
//data (String | Buffer) 将要写入的内容,可以使字符串 或 buffer数据。
//options (Object) option数组对象,包含:
//· encoding (string) 可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored。
//· mode (Number) 文件读写权限,默认值 438
//· flag (String) 默认值 ‘w'
//callback {Function} 回调,传递一个异常参数err。 fs.writeFile('t.txt','你好nodejs 覆盖','utf8',function(err){ if(err){
console.log(err); return false;
}
console.log('写入成功');
})

4. fs.appendFile 追加文件

fs.appendFile('t1.txt','这是写入的内容',function(err){

  if(err){
console.log(err); return false;
}
console.log('写入成功');
})

5.fs.readFile 读取文件

fs.readFile('t1.txt',function(err,data){
if(err){
console.log(err); return false;
}
//console.log(data); console.log(data.toString()); })

6.fs.readdir 读取目录

fs.readdir('html',function(err,data){

   if(err){
console.log(err); return false;
}
console.log(data); })

7.fs.rename 重命名

fs.rename('html/index.html','html/news.html',function(err){

   if(err){
console.log(err); return false;
}
console.log('修改名字成功');
}) fs.rename('html/css/basic.css','html/style.css',function(err){ if(err){
console.log(err); return false;
}
console.log('剪切成功');
})

8. fs.rmdir 删除目录

fs.rmdir('t',function(err){
if(err){
console.log(err); return false;
}
console.log('删除目录成功');
}) // ENOENT: no such file or directory, rmdir rmdir 这个方法只能删除目录
fs.rmdir('index.txt',function(err){
if(err){
console.log(err); return false;
}
console.log('删除目录成功');
})

9. fs.unlink 删除文件

fs.unlink('index.txt',function(err){

       if(err){
console.log(err);
return false;
}
console.log('删除文件成功');
})

10. fs.createReadStream 从文件流中读取数据

const fs = require('fs')

//流的方式读取文件

var readStream=fs.createReadStream('input.txt');

var str='';/*保存数据*/
var count=0; /*次数*/
readStream.on('data',function(chunk){
str+=chunk;
count++; }) //读取完成
readStream.on('end',function(chunk){
console.log(count);
console.log(str); }) //读取失败
readStream.on('error',function(err){
console.log(err); })

11. fs.createWriteStream 写入文件

var fs = require("fs");
var data = '我是从数据库获取的数据,我要保存起来11\n'; // 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt'); for(var i=0;i<100;i++){ writerStream.write(data,'utf8'); } //标记写入完成
writerStream.end(); writerStream.on('finish',function(){ console.log('写入完成');
}) //失败
writerStream.on('error',function(){ console.log('写入失败');
})

12. 管道流

var fs = require("fs");

// 创建一个可读流
var readerStream = fs.createReadStream('input.txt'); // 创建一个可写流
var writerStream = fs.createWriteStream('output.txt'); // 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream); console.log("程序执行完毕");

demo:

//1.判断服务器上面有没有upload目录。没有创建这个目录。   (图片上传)

//要用fs目录必须得引入fs

var fs=require('fs');
//
//fs.stat('upload',function(err,stats){
//
// if(err){ /*没有这个目录*/
// fs.mkdir('upload',function(error){
// if(error){
//
// console.log(error);
// return false;
// }
// console.log('创建成功');
// })
// }else{
// console.log('目录已经存在');
// console.log(stats.isDirectory());
// }
//
//}) //2. 找出html目录下面的所有的目录,然后打印出来 //错误写法
//fs.readdir('html',function(err,files){
// if(err){
// console.log(error);
//
// }else{ /*判断是目录还是文件夹*/
// console.log(files); /*数组*/
//
// for(var i=0;i<files.length;i++){
//
// console.log(files[i]);
// fs.stat(files[i],function(error,stats){ /*循环判断是目录还是文件 ---异步 */
//
// console.log(files[i]);
// })
// }
//
// }
//
//
//})
// //打印出什么 3 3 3
//for(var i=0;i<3;i++){
//
// setTimeout(function(){
// console.log(i);
// },100)
//} //正确的写法 var filesArr=[];
fs.readdir('html',function(err,files){
if(err){
console.log(error); }else{ /*判断是目录还是文件夹*/
//console.log(files); /*数组*/ (function getFile(i){ if(i==files.length){ /*循环结束*/
console.log('目录:');
console.log(filesArr); /*打印出所有的目录*/
return false;
}
//files[i] = css js news.html
//注意:目录
fs.stat('html/'+files[i],function(error,stats){ /*循环判断是目录还是文件 */ if(stats.isDirectory()){ /*目录*/ filesArr.push (files[i]); /*保存数据*/
}
//递归掉用
getFile(i+1);
})
})(0)
}
})

NodeJs FS 文件系统模块的更多相关文章

  1. Node.js:fs文件系统模块

    fs文件系统模块,这是一个非常重要的模块,对文件的操作都基于它.该模块的所有方法都有同步和异步两种方式,下面便介绍一下该模块的使用. 1.检测当前进程对文件的权限 使用fs.access(path[, ...

  2. node.js中fs文件系统模块的使用

    node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法 ...

  3. Node.js fs文件系统模块

    一.读取文件几个步骤 1.先引入fs文件系统模块 2.使用readfile 或 readFileSync 注意点:它们的回调函数有两个参数,第一个是err,第二个是data,得到的data是buffe ...

  4. node-fs文件系统模块

    在node环境中所有与文件操作都是通过fs核心模块实现的.包括文件的创建.删除.查询以及读写和写入 在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 ...

  5. node.js常用的fs文件系统

    fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...

  6. node.js中常用的fs文件系统

    fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...

  7. Node.js 文件系统模块

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  8. 大熊君大话NodeJS之------FS文件模块

    一,开篇分析 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集.可以通过调用 require("fs") 来获取该模块.文件系统模块中的所有方法均有异步和同步 ...

  9. nodeJS之fs文件系统

    前面的话 fs文件系统用于对系统文件及目录进行读写操作,本文将详细介绍js文件系统 概述 文件 I/O 是由简单封装的标准 POSIX 函数提供的. 通过 require('fs') 使用该模块. 所 ...

随机推荐

  1. top - 交互式监控

    top - display Linux processes 显示linux进程 格式: top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld ...

  2. rds - mysql修改存储过程/函数的方式

    rds 不支持账户A 给账户B 创建授权存储过程,只能是当前登录账户给自己创建,要登陆对应账户删除原有存储过程重新创建即为修改. 例子如下: 先登陆新账号然后执行如下sql语句即可: DROP PRO ...

  3. PAT 乙级 1020.月饼 C++/Java

    题目来源 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部 ...

  4. 【转载】python2x与3x下urlretrieve的使用

    转载地址:https://blog.csdn.net/drdairen/article/details/61934598 1.python2x下urlretrieve方法: 直接将远程数据下载到本地. ...

  5. Diagnostic Viewer 显示空白

    MATLAB R2014a仿真出现错误后,查找错误时,Diagnostic Viewer 显示空白.网上查的一种解决方法.我的电脑是Windows7. 1.点击 所有程序>附件>记事本(以 ...

  6. eclipse解决中文字体太小问题(转载)

    最近新装了Win7,打开eclipse3.7中文字体很小,简直难以辨认.在网上搜索发现这是由于Eclipse 3.7 用的字体是 Consolas,显示中文的时候默认太小了.   解决方式有两种:一. ...

  7. Ping任务管理模块-JavaWeb

    总体框架: 1.创建任务 2.修改任务 3.删除任务 4.环境配置 5.全量PING 6.抽样PING 7.停止 8.查看历史 9.查看执行详情 主要从项目总结和经验角度讲述: 一.项目运行环境 1. ...

  8. LeetCode 848. Shifting Letters

    原题链接在这里:https://leetcode.com/problems/shifting-letters/ 题目: We have a string S of lowercase letters, ...

  9. svn服务器命令(转)

    *验证svn安装是否成功 #svnadmin --version *创建svn的数据仓库 #svnadmin create /data/svn/svndata/spms *启动svn服务 #svnse ...

  10. 新blog

    www.nancheng58.xyz 欢迎来访 骗访客量 我之前的blog是在csdn上的 https://blog.csdn.net/sinat_34550050 这里算是个在csdn的镜像吧 不过 ...