mode默认为0777,即任何人可以读写该目录
var fs=require('fs');
fs.mkdir('./directory',function (err) {
if(err)console.log('failed');
else console.log('ok');
})
var fs=require('fs');
fs.readdir('./',function (err,files) {
if(err)console.log('failed');
else console.log(files);
})
//显示所有文件名
区别:查看符号链接文件的信息时必须用后者
说明:path指定需要被查看的文件或目录的完整路径及文件名或目录名
callback:functioin(err,stats){}
stats:是一个fs.Stats对象
有以下方法:
var fs=require('fs');
fs.stat('./hello.txt',function (err,stats) {
console.log(stats);
})
callback:function(exists){} exists为true/false
var fs=require('fs');
fs.exists('./hello.txt',function (hh) {
if(hh)console.log('yes');
else console.log('no');
})
callback:function(err,path){}path指绝对路径
cache:一个对象,其中存放了一些预先指定的路径。例如在如下的代码中,使用"private/etc"来指定path参数值中"/etc"字符串所指向的路径。
var cache={'etc':'/private/etc/'};
fs.realpath('etc/passwd',cache,function(err,path){});
实例:
var fs=require('fs');
var data;
fs.realpath('./hello1.txt',function (err,path) {
if(err)console.log('failed');
else console.log(path);
data=path;
})
atime:指定修改后的访问时间
mtime:指定修改后的时间
var fs=require('fs');
fs.utimes('./hello1.txt',new Date(),new Date(),function (err) {
if(err)console.log('error');
else console.log('yes');
})
fs.futimes(path,atime,mtime,callback)
var fs=require('fs');
fs.open('./hello1.txt','w+',function (err,fd) {
if(err)throw err;
fs.futimes(fd,new Date(),new Date(),function (err) {
if(err)console.log('no');
console.log('yes');
});
})
mode指定修改后的权限
callback参数只有error
同上面类似
var fs=require('fs');
var oldOne='./directory/hello.txt';
var newOne='./hello2.txt';
fs.rename(newOne,oldOne,function(err){
if(err)console.log('fail');
else console.log('yes');
})
类似于新建引用
var fs=require('fs');
var oldOne='./directory/hello.txt';
var newOne='./hello2.txt';
fs.link(oldOne,newOne,function(err){
if(err)console.log('fail');
else console.log('yes');
})
把所有硬链接都删了就等于把文件删了把(?)
var fs=require('fs');
var oldOne='./directory/hello.txt';
var newOne='./hello2.txt';
fs.unlink(newOne,function(err){
if(err)console.log('fail');
else console.log('yes');
})
类似于指针
var fs=require('fs');
var forErr =function (err) {
if(err) throw err;
else console.log('passed');
};
fs.symlink('./a','./bb','dir',forErr)
var fs=require('fs');
fs.symlink('./hello.txt','./helloCopy.txt','file',function (err) {
if(err)console.log('error!!!');
else {
fs.readlink('./helloCopy.txt',function (err,linkString) {
if (err)throw err;
else console.log(linkString);
})
}
})
len是截断后文件的大小(字节),callback只有error
var fs=require('fs');
fs.truncate('./hello.txt',15,function (err) {
if(err)console.log('error!!!');
else
fs.stat('./hello.txt',function (err,stat) {
console.log('document is '+stat.size);
})
})
var fs=require('fs');
fs.open('./hello.txt','r+',function(err,fd){
if(err)console.log('this is error');
else {
fs.ftruncate(fd,10,function (err) {
if(err)console.log('this is error');
})
}
})
var fs=require('fs');
fs.rmdir('./directory',function (err) {
if(err)throw err; //如果目录不是空的话会报错
else console.log('ss');
})
var fs=require('fs');
fs.watchFile('./kingsley.txt',function (curr,prev) {
if(Date.parse(prev.ctime)==0)//文件被创建
console.log('built');
else if (Date.parse(curr.ctime)==0)//文件被删除
console.log('deleted');
else if(Date.parse(prev.mtime)!=Date.parse(curr.mtime))//文件被修改
console.log('modified');
})
var fs=require('fs');
var func1=function(curr,prev){
if(Date.parse(prev.ctime)==0)
console.log('created');
else if (Date.parse(curr.ctime)==0)
console.log('deleted');
else if(Date.parse(prev.mtime)!=Date.parse(curr.mtime))
console.log('modified');
}
var func2=function(curr,prev){
if(Date.parse(curr.ctime)!=0)
console.log(curr.size+'bites');
}
fs.watchFile('./hello.txt',func1);//备注1
fs.watchFile('./hello.txt',func2);
fs.unwatchFile('./hello.txt',func1);//这一行使备注1废掉了,即只会输出xx bites
var fs=require('fs');
var watcher=fs.watch('./hello.txt',function (event,filename) {
console.log(event);
console.log(filename);
watcher.close();
})
当使用watch方法指定监视的文件或目录发生改变时,触发fs.FSWatcher对象的change事件,该事件触发时可以调用的回调函数[listener]为 function(event,filename){ }
错误的时候返回function(error){}
var fs=require('fs');
var watcher=fs.watch('./hello.txt');
watcher.on('change',function (event,filename) {
console.log(event+' change '+filename);
});