標籤:沒有 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中內建檔案系統一些常用的方法總結