fs.rename(path1, path2, [callback]),fs.renameSync(path1, path2)
重命名某個(gè)文件,前者異步調(diào)用秽五,后者同步調(diào)用卖宠。除非回調(diào)函數(shù)執(zhí)行過程出現(xiàn)了異常碎连,否則不會(huì)傳遞任何參數(shù)茫陆。 例如:
var fs=require('fs');
fs.rename('D:/test.js','D:/test1.js',function(err){
if(err){
console.log(err);
}else{
console.log('renamed complete');
}
})
fs.truncate(fd,len,[callback]),fs.trucateSync(fd,len)
異步調(diào)用截?cái)嗄硞€(gè)文件,如果執(zhí)行過程中出現(xiàn)異常颤绕,回調(diào)函數(shù)接收一個(gè)參數(shù)(err),否則不傳遞任何參數(shù)捕虽。
var fs=requrie('fs');
fs.open('../test.js',function(err,fd){
fs.truncate('../test.js',10,function(err){
if(err){
throw err;
}
console.log(fd);
});
});
fs.chmod(path, mode, [callback]) 和 fs.chmodSync(path, mode)
修改文件權(quán)限慨丐,主要說下第二個(gè)參數(shù),實(shí)際上是:-rwxrwxrwx,三個(gè)一組薯鳍,r:4咖气、w:2、x:1挖滤、-: 0崩溪。可以 參考 http://zh.wikipedia.org/zh/Chmod
fs.stat(path, [callback]),fs.lstat(path, [callback]),fs.fstat(fd, [callback]) 和 fs.statSync(path)斩松、fs.lstatSync(path)伶唯、fs.fstatSync(fd)
讀取文件元信息,回調(diào)函數(shù)將返回兩個(gè)參數(shù)(err, stats)惧盹,其中stats是fs.Stats的一個(gè)對(duì)象.者的區(qū)別在于:
第一個(gè)是返回文件的信息乳幸,參數(shù)是路徑
第二個(gè)是和第一個(gè)一樣,當(dāng)路徑是文件鏈接時(shí)钧椰,返回這個(gè)鏈接文件的信息
第三個(gè)是傳遞參數(shù)為fd文件描述符
fs.link(srcpath, dstpath, [callback])粹断、fs.linkSync(srcpath, dstpath) 和 fs.symlink(linkdata, path, [callback])、fs.symlinkSync(linkdata, path)
建立文件鏈接嫡霞,除非回調(diào)函數(shù)執(zhí)行過程出現(xiàn)了異常瓶埋,否則不會(huì)傳遞任何參數(shù)。link和symlink的區(qū)別是: link 創(chuàng)建的是hard link 所謂硬鏈接 symlink創(chuàng)建的是symbolic link 所謂符號(hào)鏈接 硬鏈接就是備份诊沪,軟連接就是快捷方式
fs.readlink(path, [callback])养筒、fs.realpath(path, [callback]) 、fs.unlink(path, [callback])和 fs.readlinkSync(path)端姚、fs.realpathSync(path)晕粪、fs.unlinkSync(path)
異步調(diào)用readlink,回調(diào)函數(shù)返回兩個(gè)參數(shù)(err,resolvedPath)渐裸,resolvedPath為解析后的文件路徑巫湘。 這3個(gè)函數(shù)分別是: 1装悲、readlink:讀取鏈接源地址 2、realpath:根據(jù)相對(duì)地址轉(zhuǎn)換為絕對(duì)地址 3剩膘、unlink:刪除某一個(gè)文件鏈接
fs.rmdir(path, [callback])衅斩、fs.mkdir(path, mode, [callback])盆顾、fs.readdir(path, [callback]) 和 fs.rmdirSync(path)怠褐、fs.mkdirSync(path, mode)、fs.readdirSync(path)
三個(gè)命令分別是: rmdir:刪除目錄 mkdir:建立目錄 readdir:讀取目錄中的內(nèi)容您宪∧卫粒回調(diào)函數(shù)接受兩個(gè)參數(shù)(err, files),其中files參數(shù)是保存了目錄中所有文件名的數(shù)組('.'和'..'除外)宪巨。
fs.close(fd, [callback])磷杏、fs.closeSync(fd) 和 fs.open(path, flags, [mode], [callback])、fs.openSync(path, flags, [mode])
fs.open與 C 語言標(biāo)準(zhǔn)庫(kù)中的 fopen 函數(shù)類似捏卓。它接受兩個(gè)必選參數(shù)极祸,path 為文件的路徑, flags 可以是以下值怠晴。 ? r :以讀取模式打開文件遥金。
? r+ :以讀寫模式打開文件。
? w :以寫入模式打開文件蒜田,如果文件不存在則創(chuàng)建稿械。
? w+ :以讀寫模式打開文件,如果文件不存在則創(chuàng)建冲粤。
? a :以追加模式打開文件美莫,如果文件不存在則創(chuàng)建。
? a+ :以讀取追加模式打開文件梯捕,如果文件不存在則創(chuàng)建厢呵。
mode 參數(shù)用于創(chuàng)建文件時(shí)給文件指定權(quán)限,默認(rèn)是 0666傀顾〗竺回調(diào)函數(shù)將會(huì)傳遞一個(gè)文 件描述符 fd。
fs.utimes(path, atime, mtime, callback)锣笨、fs.utimesSync(path, atime, mtime) 和 fs.futimes(path, atime, mtime, callback)蝌矛、fs.futimesSync(path, atime, mtime)
更改文件時(shí)間戳,2者區(qū)別在于错英,utimes更改此文件時(shí)間戳入撒,如果此文件指向一個(gè)符號(hào)鏈接,futimes更改符號(hào)鏈接的時(shí)間戳椭岩。
fs.write(fd, buffer, offset, length, position, [callback]) 和 fs.writeSync(fd, buffer, offset, length, position) 和 fs.writeSync(fd, str, position, encoding='utf8')
fs.write將buffer緩沖器內(nèi)容寫入fd文件描述符,
offset和length決定了將緩沖器中的哪部分寫入文件茅逮。
position指明將數(shù)據(jù)寫入文件從頭部算起的偏移位置璃赡,若position為null,數(shù)據(jù)將從當(dāng)前位置開始寫入
回調(diào)函數(shù)接受兩個(gè)參數(shù)(err, written)献雅,其中written標(biāo)識(shí)有多少字節(jié)的數(shù)據(jù)已經(jīng)寫入
第三個(gè)是基于字符串的fs.write()的同步版本碉考,返回寫入數(shù)據(jù)的字節(jié)數(shù)。
注意:寫完后要關(guān)閉它
fs.read(fd, buffer, offset, length, position, [callback]) 挺身、fs.readSync(fd, buffer, offset, length, position)侯谁、fs.readSync(fd, length, position, encoding) 和 fs.readFile(filename, [encoding], [callback])、fs.readFileSync(filename, [encoding]) 〈br /> 前3個(gè)是讀取文件描述符和BUFFER的方法章钾,后2個(gè)是讀取文件全部?jī)?nèi)容墙贱,比如輸出html模版,或者css文件等贱傀。
一般來說惨撇,除非必要,否則不要使用前3個(gè)是讀取文件方式讀取文件府寒,因?yàn)樗竽闶謩?dòng)管理緩沖區(qū) 和文件指針魁衙,尤其是在你不知道文件大小的時(shí)候,這將會(huì)是一件很麻煩的事情株搔。
fs.read回調(diào)函數(shù)接受兩個(gè)參數(shù)剖淀,(err, bytesRead),bytesRead返回讀取到的字節(jié)數(shù)。
fs.readFile的回調(diào)函數(shù)將傳入兩個(gè)參數(shù)(err, data)邪狞,其中data為文件內(nèi)容祷蝌,如果沒有設(shè)置編碼,那么將返回原始內(nèi)容格式的緩沖器帆卓。
fs.writeFile(filename, data, encoding='utf8', [callback]),fs.writeFileSync(filename, data, encoding='utf8')
對(duì)應(yīng)文件寫功能
〈strong>fs.watchFile(filename, [options], listener),fs.unwatchFile(filename)
fs.watchFile監(jiān)聽指定文件filename的變化巨朦,回調(diào)函數(shù)listener將在每次該文件被訪問時(shí)被調(diào)用.
第二個(gè)參數(shù)[options]是可選項(xiàng),如果指定了options參數(shù)剑令,它應(yīng)該是一個(gè)包含如下內(nèi)容的對(duì)象:名為persistent的布爾值糊啡,和名為interval單位為毫秒的輪詢時(shí)間間隔,默認(rèn)值為{ persistent: true, interval: 0 }吁津。 listener監(jiān)聽器將獲得兩個(gè)參數(shù)(curr, prev)棚蓄,分別標(biāo)識(shí)當(dāng)前的狀態(tài)對(duì)象和改變前的狀態(tài)對(duì)象,這些狀態(tài)對(duì)象為fs.Stat的實(shí)例。
fs.unwatchFile停止監(jiān)聽文件filename的變化碍脏。
fs.Stats
fs.stat()和 fs.lstat()方法返回的對(duì)象為此類型
stats.isFile()
stats.isDirectory()
stats.isBlockDevice()
stats.isCharacterDevice()
stats.isSymbolicLink() (only valid with fs.lstat()) stats.isSymbolicLink() (僅對(duì)fs.lstat()有效)
stats.isFIFO()
stats.isSocket()
{ dev: 2049,
ino: 305352,
mode: 16877,
nlink: 12,
uid: 1000,
gid: 1000,
rdev: 0,
size: 4096,
blksize: 4096,
blocks: 8,
atime: '2009-06-29T11:11:55Z',
mtime: '2009-06-29T11:11:40Z',
ctime: '2009-06-29T11:11:40Z' }
fs.createReadStream(path, [options])
返回一個(gè)新的可讀流對(duì)象options是包含如下默認(rèn)值的對(duì)象:
{ flags: 'r', encoding: null, fd: null, mode: 0666, bufferSize: 64 * 1024 }
如果不想讀取文件的全部?jī)?nèi)容梭依,可以在options參數(shù)中設(shè)置start和end屬性值以讀取文件中指定范圍的內(nèi)容。start和end包含在范圍中(閉集合)典尾,取值從0開始役拴。這兩個(gè)參數(shù)需要同時(shí)設(shè)置。
fs.createWriteStream(path, [options])
options參數(shù)是包含如下默認(rèn)值的對(duì)象:
{ flags: 'w', encoding: null, mode: 0666 }