-
fs.rename(path1, path2, [callback]),fs.renameSync(path1, path2)
重命名某個文件,前者異步調用,后者同步調用。除非回調函數執行過程出現了異常,否則不會傳遞任何參數。 例如: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)
異步調用截斷某個文件,如果執行過程中出現異常,回調函數接收一個參數(err),否則不傳遞任何參數。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)
修改文件權限,主要說下第二個參數,實際上是:-rwxrwxrwx,三個一組,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)
讀取文件元信息,回調函數將返回兩個參數(err, stats),其中stats是fs.Stats的一個對象.者的區別在於:
第一個是返回文件的信息,參數是路徑
第二個是和第一個一樣,當路徑是文件鏈接時,返回這個鏈接文件的信息
第三個是傳遞參數為fd文件描述符 - fs.link(srcpath, dstpath, [callback])、fs.linkSync(srcpath, dstpath) 和 fs.symlink(linkdata, path, [callback])、fs.symlinkSync(linkdata, path)
建立文件鏈接,除非回調函數執行過程出現了異常,否則不會傳遞任何參數。link和symlink的區別是: link 創建的是hard link 所謂硬鏈接 symlink創建的是symbolic link 所謂符號鏈接 硬鏈接就是備份,軟連接就是快捷方式 - fs.readlink(path, [callback])、fs.realpath(path, [callback]) 、fs.unlink(path, [callback])和 fs.readlinkSync(path)、fs.realpathSync(path)、fs.unlinkSync(path)
異步調用readlink,回調函數返回兩個參數(err,resolvedPath),resolvedPath為解析后的文件路徑。 這3個函數分別是: 1、readlink:讀取鏈接源地址 2、realpath:根據相對地址轉換為絕對地址 3、unlink:刪除某一個文件鏈接 - fs.rmdir(path, [callback])、fs.mkdir(path, mode, [callback])、fs.readdir(path, [callback]) 和 fs.rmdirSync(path)、fs.mkdirSync(path, mode)、fs.readdirSync(path)
三個命令分別是: rmdir:刪除目錄 mkdir:建立目錄 readdir:讀取目錄中的內容。回調函數接受兩個參數(err, files),其中files參數是保存了目錄中所有文件名的數組('.'和'..'除外)。 - fs.close(fd, [callback])、fs.closeSync(fd) 和 fs.open(path, flags, [mode], [callback])、fs.openSync(path, flags, [mode])
fs.open與 C 語言標准庫中的 fopen 函數類似。它接受兩個必選參數,path 為文件的路徑, flags 可以是以下值。 r :以讀取模式打開文件。
r+ :以讀寫模式打開文件。
w :以寫入模式打開文件,如果文件不存在則創建。
w+ :以讀寫模式打開文件,如果文件不存在則創建。
a :以追加模式打開文件,如果文件不存在則創建。
a+ :以讀取追加模式打開文件,如果文件不存在則創建。
mode 參數用於創建文件時給文件指定權限,默認是 0666。回調函數將會傳遞一個文 件描述符 fd。 - fs.utimes(path, atime, mtime, callback)、fs.utimesSync(path, atime, mtime) 和 fs.futimes(path, atime, mtime, callback)、fs.futimesSync(path, atime, mtime)
更改文件時間戳,2者區別在於,utimes更改此文件時間戳,如果此文件指向一個符號鏈接,futimes更改符號鏈接的時間戳。 - 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緩沖器內容寫入fd文件描述符,
offset和length決定了將緩沖器中的哪部分寫入文件。
position指明將數據寫入文件從頭部算起的偏移位置,若position為null,數據將從當前位置開始寫入
回調函數接受兩個參數(err, written),其中written標識有多少字節的數據已經寫入
第三個是基於字符串的fs.write()的同步版本,返回寫入數據的字節數。
注意:寫完后要關閉它 - 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個是讀取文件描述符和BUFFER的方法,后2個是讀取文件全部內容,比如輸出html模版,或者css文件等。
一般來說,除非必要,否則不要使用前3個是讀取文件方式讀取文件,因為它要求你手動管理緩沖區 和文件指針,尤其是在你不知道文件大小的時候,這將會是一件很麻煩的事情。
fs.read回調函數接受兩個參數,(err, bytesRead),bytesRead返回讀取到的字節數。
fs.readFile的回調函數將傳入兩個參數(err, data),其中data為文件內容,如果沒有設置編碼,那么將返回原始內容格式的緩沖器。 - fs.writeFile(filename, data, encoding='utf8', [callback]),fs.writeFileSync(filename, data, encoding='utf8')
對應文件寫功能 - 〈strong>fs.watchFile(filename, [options], listener),fs.unwatchFile(filename)
fs.watchFile監聽指定文件filename的變化,回調函數listener將在每次該文件被訪問時被調用.
第二個參數[options]是可選項,如果指定了options參數,它應該是一個包含如下內容的對象:名為persistent的布爾值,和名為interval單位為毫秒的輪詢時間間隔,默認值為{ persistent: true, interval: 0 }。 listener監聽器將獲得兩個參數(curr, prev),分別標識當前的狀態對象和改變前的狀態對象,這些狀態對象為fs.Stat的實例。
fs.unwatchFile停止監聽文件filename的變化。 - fs.Stats
fs.stat()和 fs.lstat()方法返回的對象為此類型stats.isFile()
stats.isDirectory()
stats.isBlockDevice()
stats.isCharacterDevice()
stats.isSymbolicLink()
(only valid withfs.lstat()
)stats.isSymbolicLink()
(僅對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])
返回一個新的可讀流對象options是包含如下默認值的對象:
{ flags: 'r', encoding: null, fd: null, mode: 0666, bufferSize: 64 * 1024 }
如果不想讀取文件的全部內容,可以在options參數中設置start和end屬性值以讀取文件中指定范圍的內容。start和end包含在范圍中(閉集合),取值從0開始。這兩個參數需要同時設置。 -
fs.createWriteStream(path, [options])
options參數是包含如下默認值的對象:
{ flags: 'w', encoding: null, mode: 0666 }