第一次接觸NodeJS的文件系統就被它的非同步的響應給搞暈了,後來發現NodeJS判斷文件夾是否存在和創建文件夾是還有同步方法的,但是還是想嘗試使用非同步的方法去實現。 使用的方法:fs.exists(path, callback);fs.mkdir(path, [mode], callback);實現 ...
第一次接觸NodeJS的文件系統就被它的非同步的響應給搞暈了,後來發現NodeJS判斷文件夾是否存在和創建文件夾是還有同步方法的,但是還是想嘗試使用非同步的方法去實現。
使用的方法:
fs.exists(path, callback);
fs.mkdir(path, [mode], callback);
實現文件夾目錄結構的創建代碼實現如下:
//創建文件夾 function mkdir(pos, dirArray,_callback){ var len = dirArray.length; console.log(len); if( pos >= len || pos > 10){ _callback(); return; } var currentDir = ''; for(var i= 0; i <=pos; i++){ if(i!=0)currentDir+='/'; currentDir += dirArray[i]; } fs.exists(currentDir,function(exists){ if(!exists){ fs.mkdir(currentDir,function(err){ if(err){ console.log('創建文件夾出錯!'); }else{ console.log(currentDir+'文件夾-創建成功!'); mkdir(pos+1,dirArray,_callback); } }); }else{ console.log(currentDir+'文件夾-已存在!'); mkdir(pos+1,dirArray,_callback); } }); } //創建目錄結構 function mkdirs(dirpath,_callback) { var dirArray = dirpath.split('/'); fs.exists( dirpath ,function(exists){ if(!exists){ mkdir(0, dirArray,function(){ console.log('文件夾創建完畢!準備寫入文件!'); _callback(); }); }else{ console.log('文件夾已經存在!準備寫入文件!'); _callback(); } }); }
首先把需要創建的一個目錄結構存放到一個數組裡面,然後主要採用深搜的思想去實現(深度為數組的長度)。
參考文檔如下:
http://www.cnblogs.com/gaojun/p/4159488.html#_Toc406152896