Node.Js fs模組資料夾操作
阿新 • • 發佈:2019-02-16
1.fs.readdir(path, callback);
使用fs.readdir讀取目錄,重點其回撥函式中files物件
/**
* path, 要讀取目錄的完整路徑及目錄名;
* [callback(err, files)], 讀完目錄回撥函式;err錯誤物件,files陣列,存放讀取到的目錄中的所有檔名
*/
例項:
結果://讀取目錄 var fs=require('fs'); //如果路徑指定不規範,則會按當前檔案所在目錄處理 //如果為目錄不存在丟擲異常 { [Error: ENOENT, scandir 'F:\test1'] errno: -4058, code: 'ENOENT', path: 'F:\\test1' } fs.readdir('F:\\test1',function(err,files){ if(err){ return console.error(err); } files.forEach(function(file){ console.info(file); }); });
one.txt
新建資料夾
[Finished in 0.3s]
2.fs.mkdir(path, [mode], callback);
使用fs.mkdir建立目錄
/**
* path, 被建立目錄的完整路徑及目錄名;
* [mode], 目錄許可權,預設0777
* [callback(err)], 建立完目錄回撥函式,err錯誤物件
*/
例項:
3.fs.rmdir(path, callback);//建立目錄 var fs=require('fs'); fs.mkdir('f:\\test1',function(err){ if(err) console.error(err); console.log('建立目錄成功'); });
刪除空目錄
/**
* path, 目錄的完整路徑及目錄名;
* [callback(err)], 操作完成回撥函式;err操作失敗物件
*/
例項:
//刪除目錄 var fs = require('fs'); //注:當前刪除目錄操作,只能刪除空目錄 //如果目錄總有檔案,丟擲異常 { [Error: ENOTEMPTY, rmdir 'f:\test1'] errno: -4051, code: 'ENOTEMPTY', path: 'f:\\test1' } fs.rmdir('f:\\test1', function(err) { if (err) { console.log('刪除空目錄失敗,可能原因:1、目錄不存在,2、目錄不為空') return console.error(err); } console.log('刪除目錄成功'); });
4.fs.exists(path, callback);
判斷檔案或目錄是否存在
/**
* path, 要檢視目錄/檔案的完整路徑及名;
* [callback(exists)], 操作完成回撥函式;exists true存在,false表示不存在
*/
例項:
//判斷資料夾是否存在
var fs=require('fs');
var path=require('path');
var path1=path.resolve('one');
console.info(path1);
fs.exists(path1,function(exists){
if(exists)
console.log('資料夾存在');
else
console.log('資料夾不存在');
});
5.fs.stat(path, callback);
//判斷路徑是檔案或資料夾等
fs.lstat(path, callback); //檢視符號連結檔案
//獲取資料夾資訊
var fs=require('fs');
var path=require('path');
var path1=path.resolve(__filename,'../');
console.info(path1);
fs.stat(path1,function(err,stats){
console.info(stats);
console.log(stats.isFile());
console.log(stats.isDirectory());
});
6.fs.rename(oldPath, newPath, callback);
//重新命名檔案或資料夾
/**
* oldPath, 原目錄/檔案的完整路徑及名;
* newPath, 新目錄/檔案的完整路徑及名;如果新路徑與原路徑相同,而只檔名不同,則是重新命名
* [callback(err)], 操作完成回撥函式;err操作失敗物件
*/
var fs=require('fs');
var path=require('path');
var path1=path.resolve('/test1');
console.info(path1);
var path2=path.resolve('/test2');
fs.rename(path1,path2,function(err){
if(err){
console.error(err);
return;
}
console.log('重新命名成功');
});
官網API:https://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback