node.js api解讀之file system模塊

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 }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钾埂,一起剝皮案震驚了整個(gè)濱河市河闰,隨后出現(xiàn)的幾起案子科平,更是在濱河造成了極大的恐慌,老刑警劉巖姜性,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞪慧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡部念,警方通過查閱死者的電腦和手機(jī)弃酌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來印机,“玉大人矢腻,你說我怎么就攤上這事门驾∩淙” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵奶是,是天一觀的道長(zhǎng)楣责。 經(jīng)常有香客問我,道長(zhǎng)聂沙,這世上最難降的妖魔是什么秆麸? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮及汉,結(jié)果婚禮上沮趣,老公的妹妹穿的比我還像新娘。我一直安慰自己坷随,他們只是感情好房铭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著温眉,像睡著了一般缸匪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上类溢,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天凌蔬,我揣著相機(jī)與錄音,去河邊找鬼闯冷。 笑死砂心,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛇耀。 我是一名探鬼主播辩诞,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蒂窒!你這毒婦竟也來了躁倒?” 一聲冷哼從身側(cè)響起荞怒,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秧秉,沒想到半個(gè)月后褐桌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡象迎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年荧嵌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砾淌。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啦撮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汪厨,到底是詐尸還是另有隱情赃春,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布劫乱,位于F島的核電站织中,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏衷戈。R本人自食惡果不足惜狭吼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望殖妇。 院中可真熱鬧刁笙,春花似錦、人聲如沸谦趣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔚润。三九已至磅氨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嫡纠,已是汗流浹背烦租。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留除盏,地道東北人叉橱。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像者蠕,于是被迫代替她去往敵國(guó)和親窃祝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容