Node.js中內建檔案系統一些常用的方法總結

來源:互聯網
上載者:User

標籤:沒有   path   append   替換   失敗   分割   刪除檔案   二進位   options   

檔案系統(fs) 首先引入內建模組:var fs = require( fs );

 

readFile

1.非同步讀取一個檔案的全部內容:fs.readFile(“./filename”,[options],function(err,data){statements})

// fs.readFile(‘./88.txt‘,‘utf-8‘,function(err,data){

 

// if(!err){

// console.log("讀取成功");

// console.log(data);

// }else{

// console.log("讀取出錯");

// // console.log(err);

// }

// })

 

注釋:

Filename為檔案路徑

回呼函數function傳遞了兩個參數 (err, data), data 就是檔案的內容。

[options]如果未指定編碼方式,原生buffer就會被返回。

 

2.同步讀取一個檔案的全部內容:

fs.readFileSync(“./filename”,[options])

 

// var data = fs.readFileSync(‘./88.txt‘,‘utf-8‘);

// console.log("同步讀取: " + data.toString());

//也可以不填options而用toString()方法

 

// console.log("程式執行完畢。");

注釋:

fs.readFile的同步版本。 返迴文件名為 filename 的檔案內容。

如果未指定編碼方式[options],原生buffer(二進位)就會被返回。 

 

 

writeFile

1.非同步寫入一個檔案,如果檔案原先存在,會被替換。(如果沒有該檔案則會新建立一個同名稱檔案)

 

fs.writeFile(“filename”,”data”,[options],function(err,data){})

var fs = require("fs");

console.log("準備開始寫入");

var w=‘我是通過writeFile寫入的內容‘;

fs.writeFile(‘./test.txt‘,w,{flag:‘a‘},function(err,data){

if(!err){

console.log("寫入成功!");

console.log("-----分割線----");

fs.readFile(‘./test.txt‘,‘utf8‘,function(err,data){

console.log("讀取內容為:");

console.log(data);

})

}else{

console.log("寫入錯誤:");

console.log(err);

}

})

 

注釋:

非同步將資料寫入一個檔案, 如果檔案原先存在,會被替換。 data 可以是一個string,也可以是一個原生buffer。

[options]中 {flag:‘a‘} 不會覆蓋住原先的內容而是接著後面寫(追加的方式)

 

 

2.同步寫入內容:

fs.writeFileSync(‘filename’,’data’,[options])

 

注釋:

writeFile的同步版本;

 

appendFile

1.非同步將資料添加到一個檔案的尾部,如果檔案不存在,會建立一個新的檔案。 data 可以是一個string,也可以是原生buffer。

fs.appendFile(‘Filename’,data,[options],function(err,data){})

 

注釋:

和writeFile()方法同理;

 

 

2.非同步將資料添加到一個檔案的尾部

fs.appendFileSync(filename, data, [options]);

 

fs.appendFile的同步版本。

 

 

 

 

Exists

1.檢查指定路徑的檔案或者目錄是否存在。接著通過 callback 傳入的參數指明存在 (true) 或者不存在 (false)。

 

Fs.exists(path,function(msg){console.log(msg)});

 

fs.exists(‘./test.txt‘,function(msg){

 

console.log(msg);

})

 

//true  存在       //false   不存在

 

 

2.同步檢查指定路徑的檔案或者目錄是否存在。

 

Fs.existsSync(path);

 

 

var exist = fs.existsSync(‘./test.txt‘);

 

console.log(exist);

 

//true  存在       //false   不存在

 

 

unlink

1.非同步刪除一個檔案完成時的回呼函數(callback)只接受一個參數(msg):

 fs.unlink(path,function(msg){console.log(msg)})

 

 

刪除成功 即為null!console.log(msg) //null

刪除錯誤(檔案不存在)

{ Error: ENOENT: no such file or directory, unlink ‘path‘

  errno: -4058,

  code: ‘ENOENT‘,

  syscall: ‘unlink‘,

  path: ‘C:\\Users\\Administrator\\Desktop\\11\\test.txt‘ }

 

 

2.同步版的unlink

 

Var unlink=fs.unlinkSync(path);

Console.log(unlink);

 

 

mkdir

1.非同步建立一個空目錄

 

 fs.mkdir(path,[mode],function(err){if(!err){console.log(建立成功)}});

 

fs.mkdir(‘./abc/test‘,function(err){

if(!err){

console.log("建立成功");

}else{

    console.log(err);

    }

})

 

 

2.同步建立一個空檔案夾

fs.mkdirSync(path,[mode]);

 

 

 

 

readdir

1.非同步讀取一個檔案夾下的所有目錄:

fs.readdir(path,function(err,files))

 

fs.readdir(‘./abc‘,function(err,files){

if(!err){

console.log("讀取成功:");

files.forEach(function(file){

console.log(file);

})

}else{

     console.log(err);

}

})

 

注釋:files是一個數組 需要forEach(function(file))支援

 

2.同步版readdir  

 

Fs.readdirSync(path);

 

var read = fs.readdirSync(‘./abc‘);

console.log(read);

 

 

注釋:返回的是一個數組;

 

 

rmdir

1.非同步刪除一個檔案夾(目錄),注意只能刪除一個空的檔案夾

 

fs.rmdir(path,function(err){if(err){return console.log(err);}})

 

fs.rmdir(‘./abc/test‘,function(err){

if(!err){

console.log("執行刪除...");

console.log("刪除成功!");

fs.readdir(‘./abc‘,function(err,files){

if(!err){

files.forEach(function(file){

console.log(file);

})

}

})

}else{

console.log("刪除失敗:");

console.log(err);

}

})

 

2.同步刪除檔案夾(空)

 

fs.rmdirSync(path)

Node.js中內建檔案系統一些常用的方法總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.