File System的简单操作
在进行这些操作之前,需要在js文件中导入fs模块
const fs = require("fs");
- const是定义一个常量,比较特殊的是,使用const定义时必须赋值,一旦被赋值就不能再修改。
一、操作文件夹
- 创建文件夹
fs.mkdir("test", function(err) {
if (err) throw err;
console.log("创建成功");
})
- 删除文件夹
fs.rmdir("test", err => {
if (err) throw err;
console.log("删除成功");
})
- 判断文件夹是否存在
- exists方法现在已经不推荐使用了。
fs.exists("test", (exists)=> {
if (exists) {
console.log("存在");
} else {
console.log("不存在");
}
})- access方法在有的nodejs版本中需要写成 fs.constants.F_OK
fs.access('test', fs.constants.F_OK, (err) => {
if(err) {
console.log("文件夹不存在");
return;
}
console.log("文件夹存在");
})
二、操作文件
- 写入文件
fs.writeFile("123.txt", "hello word", err => {
if(err) throw err;
})
- 追加文字
fs.appendFile("123.txt", "啦啦", err => {
if(err) throw err;
})
- 修改文件名
fs.rename("C:/Users/Scr/Desktop/丽丽.bmp", "C:/Users/Scr/Desktop/lili.bmp", err => {
if(err) throw err;
console.log("ok");
})
- 删除文件
fs.unlink("123.txt", err => {
if(err) throw err;
console.log("删除完成");
})
- 获取文件相关属性
fs.stat("C:/Users/Scr/Desktop/lili.bmp", (err, stats) => {
console.log(stats);
})
- 监视文件
fs.watchFile("123.txt", (curr, prev) => {
console.log(curr.mtime);
console.log(prev.mtime);
})监视文件一般会有延迟,可以添加第二个参数,将延迟的时间缩短
fs.watchFile('123.txt', {persistent: true, interval: 10}, (curr, prev) => {
//这里是使用的是模板拼接
console.log(`the current mtime is: ${curr.mtime}`);
console.log(`the previous mtime was: ${prev.mtime}`);
});
三、文件流操作
一般拷贝文件的方法,适合拷贝小文件
"use strict";
const fs = require("fs");
//监视的文件
let currFile = "F:/BleRay.720P.rmvb";
//目标文件
let targetFile = "F:/movie";
//读文件的流
let rs = fs.createReadStream(currFile);
//写文件的流
let ws = fs.createWriteStream(targetFile);
//已经读取的文件大小
let currentCount = 0;
//文件的总大小
let fileSize = fs.statSync(currFile).size;
rs.on("data", (chunk) => {
currentCount += chunk.length;
//每一次获取到的数据---buffer
//console.log(chunk);
ws.write(chunk);
console.log("进度:" + currentCount/fileSize + "%");
})
文件流的方式拷贝
"use strict";
//监视的文件
let currFile = "F:/BleRay.720P.rmvb";
//目标文件
let targetFile = "F:/movie";
const fs = require("fs");
//读文件的流
let rs = fs.createReadStream(currFile);
//写文件的流
let ws = fs.createWriteStream(targetFile); //适合复制大文件,不能显示文件进度
rs.pipe(ws);
File System的简单操作的更多相关文章
- 【转】Android adb shell操作时出现“ XXX ... Read-only file system”解决办法--不错
原文网址:http://blog.csdn.net/whu_zhangmin/article/details/25364349 手机连接PC后 adb shell su rm -r /system/a ...
- Android 操作文件系统失败: Read-only file system
现象: $ adb push /d/Aaron/Desktop/libreference-ril-LS.so system/lib failed to copy 'D:/Aaron/Desktop/l ...
- 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]
1.磁盘基础知识 1.1 物理结构 硬盘的物理结构一般由磁头与碟片.电动机.主控芯片与排线等部件组成:当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁 ...
- Linux File System
目录 . Linux文件系统简介 . 通用文件模型 . VFS相关数据结构 . 处理VFS对象 . 标准函数 1. Linux文件系统简介 Linux系统由数以万计的文件组成,其数据存储在硬盘或者其他 ...
- KASS分布式文件系统(Kass File System)
KASS分布式文件系统(Kass File System),简称KFS,是开始公司自主研发的分布式文件存储服务平台.KFS系统架构及功能服务类似Hadoop/GFS/DFS,它通过HTTP-WEB为上 ...
- HTML5之本地文件系统API - File System API
HTML5之本地文件系统API - File System API 新的HTML5标准给我们带来了大量的新特性和惊喜,例如,画图的画布Canvas,多媒体的audio和video等等.除了上面我们提到 ...
- Csharp 简单操作Word模板文件
原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档 Doc1.dot 内容为: To: <Name> Sub:<Subject> Website i ...
- 谷歌三大核心技术(一)The Google File System中文版
谷歌三大核心技术(一)The Google File System中文版 The Google File System中文版 译者:alex 摘要 我们设计并实现了Google GFS文件系统,一个 ...
- Ceph: A Scalable, High-Performance Distributed File System译文
原文地址:陈晓csdn博客 http://blog.csdn.net/juvxiao/article/details/39495037 论文概况 论文名称:Ceph: A Scalable, High ...
随机推荐
- OI省选算法汇总
copy from hzwer @http://hzwer.com/1234.html 侵删 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 ...
- [bzoj2732][HNOI2012]射箭
Description 沫沫最近在玩一个二维的射箭游戏,如下图所示,这个游戏中的$x$轴在地面,第一象限中有一些竖直线段作为靶子,任意两个靶子都没有公共部分,也不会接触坐标轴.沫沫控制一个位于$(0, ...
- Javascript动态执行JS(new Function与eval比较)
new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 用 Function 类直接 ...
- 在windows下使用linux命令,GnuWin32的使用.
http://sourceforge.net/projects/getgnuwin32 使用过linxu的伙计估计都会喜欢上linux各种各样强大的命令如:grep, sed,awk,diff和pat ...
- MSSQLServer 纵向表转横向表 横向表转纵向表 行转列 列转行
MSSQLServer 纵向表转横向表 横向表转纵向表 建表语句及插入数据语句: CREATE TABLE Test_y( ) NULL, ) NULL, [Grade] [int] NULL ) ...
- Dell R730 配置完RAID后装系统找不到硬盘。
1. 各硬盘只是灯都正常.硬件无故障. 2. 8个600G硬盘做的RAID0和RAID5后都在装系统选盘处找不到硬盘.(注意: 第一次做raid 时,没有进行初始化init.后补做也无效,一直复现这个 ...
- JAVA中ListIterator和Iterator详解与辨析
在使用Java集 合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.ArrayList. LinkedList和Vector的时候可以使用 ...
- git查看本地和创建分支、上传分支、提交代码到分支、删除分支等,git分支、git查看本地和创建分支以及上传分支到服务器
以下是git命令行里边的命令操作 ##进入项目目录下 giscafer@Faronsince2016 /G/002_project $ cd Comments ##查看远程分支有哪些 giscafer ...
- Linux启动界面切换:图形界面-字符界面(转)
Linux字符界面切换到图形界面 由字符界面切换到图形界面可用两种简单方法实现: 1.在字符界面输入startx或init 5 . 2.通过编辑/etc/inittab文件实现默认进入图形界面. 把其 ...
- Nginx设置线程数为整机内核数的俩倍!
Nginx设置线程数为整机内核数的俩倍!