1. 程式人生 > >Node.Js fs模組資料夾操作

Node.Js fs模組資料夾操作

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錯誤物件
 */

例項:

//建立目錄
var fs=require('fs');
fs.mkdir('f:\\test1',function(err){
	if(err)
		console.error(err);
	console.log('建立目錄成功');
});
3.fs.rmdir(path, callback); 

刪除空目錄

/**
 * 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