使用遞歸
deleteFolderRecursive = function(path) {
var files = [];
if( fs.existsSync(path) ) {
files = fs.readdirSync(path);
files.forEach(function(file,index){
var curPath = path + "/" + file;
if(fs.statSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
⑵ node.js如何刪除數組子文檔的一個元素
node.js中刪除monogodb數組子文檔使用$pull關鍵詞
參考代碼:
var filter = {_id: suggestID};
var update = {$pull: {replies: {rid:opts.doc.rid}}};
return opts.dbs.csdb.collection("suggests").findOneAndUpdateAsync(filter, update, {upsert: false})
⑶ mac到底怎麼刪除nodejs
1. 拷貝如下代碼放到一個sh文件中(如uninstall_node.sh)
#!/bin/bash
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
sudo rm /usr/local/${i}
done
sudo rm -rf /usr/local/lib/node \
/usr/local/lib/node_moles \
/var/db/receipts/org.nodejs.*
2. 需要修改uninstall_node.sh文件屬性
有的會提示 「Permission denied」內
輸入如下命令修改文件屬性
chmod 777 uninstall_node.sh
3. mac終端下容執行該文件,可以把uninstall_node.sh直接拖到終端,然後等上大概1分鍾
可以看到node已經卸載了,輸入node命令,提示command not found
⑷ node.js中fs模塊的文件操作有幾種
看nodejs的官方文檔,有以下內容:
FileSystemBufferAPI
Class:fs.FSWatcher
Event:'change'
Event:'error'
watcher.close()
Class:fs.ReadStream
Event:'open'
Event:'close'
readStream.bytesRead
readStream.path
Class:fs.Stats
StatTimeValues
Class:fs.WriteStream
Event:'open'
Event:'close'
writeStream.bytesWritten
writeStream.path
fs.access(path[,mode],callback)
fs.accessSync(path[,mode])
fs.appendFile(file,data[,options],callback)
fs.appendFileSync(file,data[,options])
fs.chmod(path,mode,callback)
fs.chmodSync(path,mode)
fs.chown(path,uid,gid,callback)
fs.chownSync(path,uid,gid)
fs.close(fd,callback)
fs.closeSync(fd)
fs.constants
fs.createReadStream(path[,options])
fs.createWriteStream(path[,options])
fs.exists(path,callback)
fs.existsSync(path)
fs.fchmod(fd,mode,callback)
fs.fchmodSync(fd,mode)
fs.fchown(fd,uid,gid,callback)
fs.fchownSync(fd,uid,gid)
fs.fdatasync(fd,callback)
fs.fdatasyncSync(fd)
fs.fstat(fd,callback)
fs.fstatSync(fd)
fs.fsync(fd,callback)
fs.fsyncSync(fd)
fs.ftruncate(fd,len,callback)
fs.ftruncateSync(fd,len)
fs.futimes(fd,atime,mtime,callback)
fs.futimesSync(fd,atime,mtime)
fs.lchmod(path,mode,callback)
fs.lchmodSync(path,mode)
fs.lchown(path,uid,gid,callback)
fs.lchownSync(path,uid,gid)
fs.link(srcpath,dstpath,callback)
fs.linkSync(srcpath,dstpath)
fs.lstat(path,callback)
fs.lstatSync(path)
fs.mkdir(path[,mode],callback)
fs.mkdirSync(path[,mode])
fs.mkdtemp(prefix[,options],callback)
fs.mkdtempSync(prefix[,options])
fs.open(path,flags[,mode],callback)
fs.openSync(path,flags[,mode])
fs.read(fd,buffer,offset,length,position,callback)
fs.readdir(path[,options],callback)
fs.readdirSync(path[,options])
fs.readFile(file[,options],callback)
fs.readFileSync(file[,options])
fs.readlink(path[,options],callback)
fs.readlinkSync(path[,options])
fs.readSync(fd,buffer,offset,length,position)
fs.realpath(path[,options],callback)
fs.realpathSync(path[,options])
fs.rename(oldPath,newPath,callback)
fs.renameSync(oldPath,newPath)
fs.rmdir(path,callback)
fs.rmdirSync(path)
fs.stat(path,callback)
fs.statSync(path)
fs.symlink(target,path[,type],callback)
fs.symlinkSync(target,path[,type])
fs.truncate(path,len,callback)
fs.truncateSync(path,len)
fs.unlink(path,callback)
fs.unlinkSync(path)
fs.unwatchFile(filename[,listener])
fs.utimes(path,atime,mtime,callback)
fs.utimesSync(path,atime,mtime)
fs.watch(filename[,options][,listener])
Availability
Inodes
FilenameArgument
Caveats
fs.watchFile(filename[,options],listener)
fs.write(fd,buffer,offset,length[,position],callback)
fs.write(fd,data[,position[,encoding]],callback)
fs.writeFile(file,data[,options],callback)
fs.writeFileSync(file,data[,options])
fs.writeSync(fd,buffer,offset,length[,position])
fs.writeSync(fd,data[,position[,encoding]])
FSConstants
FileAccessConstants
FileOpenConstants
FileTypeConstants
FileModeConstants
⑸ nodejs fs模塊怎麼刪除靜態文件不是文件夾
fs.unlink(path,callback)//非同步刪除
fs.unlinkSync(path)//同步刪除
path為你文件的路徑
⑹ nodejs fs怎麼更改文件內容
var fs = require('fs');
// 使用非同步回調的方式 因為是非同步的,所以對於數據讀取完後的操作我們需內要使用回調的方式進容行處理
// 這點對於習慣事件操作的前端開發應該是習以為常的 。
fs.readFile('data.json',function(err, data){
if(err){ }else{
console.log(data.length);
}
});
⑺ nodejs fs怎麼刪除symbol link
server.js =》 node.js的伺服器啟動文件
db.js =》 資料庫操作文件
views =》 存放模板文件,也就是所有的頁面存放的地方
public =》 存放所有靜態資源的地方,比如css js images之類的!
⑻ nodejs fs的文件流關閉嗎
fs.appendFile
或者
fs.openfs.write
-
⑼ 有沒有JS代碼可以設定時間刪除某個網頁文件
這個說來話長了,js的用途非常的廣泛,最常見的有兩種:一種就是運行在瀏覽器(網頁)里的,另一種是運行在本地nodejs環境里的,當然像unity3d、cocos2d等也可以使用js。
最常見的運行在瀏覽器里的是不能刪除文件的。
運行在nodejs里的是可以刪除文件的,當然不止是刪除,你可以去文件做任何事。刪除的代碼是這樣的:
var fs = require('fs')
fs.unlink('要刪除的文件.html')
⑽ Node.JS循環刪除非空文件夾及子目錄下的所有文件
最近要實現一個循環文件夾的功能,文件夾可能不是空的,還可能帶有子文件夾和文件,網上找了一些現有的庫,但是都不提供刪除進度。所以就自己寫了一個。
var
fs
=
require('fs')
var
path
=
require('path')
var
remove
=
function(tarPath,
cb,
removeStates)
{
if
(!removeStates)
{
removeStates
=
{
cur:
0,
all:
0
}
}
else
{
if
(!removeStates.cur)
{
removeStates.cur
=
0;
}
if
(!removeStates.all)
{
removeStates.all
=
0;
}
}
removeStates.all++;
fs.stat(tarPath,
function(err,
states)
{
removeStates.cur++;
if
(err)
{
cb
&&
cb()
return
}
if
(states.isDirectory())
{
fs.readdir(tarPath,
function(err,
files)
{
if
(err)
{
console.log(err)
cb
&&
cb()
return
}
if
(files.length
<
1)
{
fs.rmdir(tarPath,
cb)
return
}
var
count
=
0
var
checkEnd
=
function()
{
if
(++count
==
files.length)
{
fs.rmdir(tarPath,
cb)
}
}
files.forEach(function(file)
{
remove(path.join(tarPath,
file),
checkEnd,
removeStates)
})
})
}
else
{
fs.unlink(tarPath,
function(err)
{
if
(err)
{
console.log(err)
}
cb
&&
cb()
return
})
}
})
return
removeStates
}
使用很簡單
var
states
=
remove('./testdir',
function()
{
console.log('delete
complete')
clearInterval(checkTimer)
});
var
checkTimer
=
setInterval(function()
{
console.log(states)
},
500);
輸出結果:
node
remove.js
{
cur:
546,
all:
546
}
delete
complete
PS:下面看下NodeJs遞歸刪除非空文件夾
此文由於第一次使用fs.unlink()刪除文件夾時報「Error:
EPERM:
operation
not
permitted,
unlink」錯誤而寫,這是因為fs.unlink()只能刪除文件。
fs.rmdir()或fs.rmdirSync()用戶刪除空文件夾,
fs.unlink()或fs.unlinkSync()用於刪除文件,因此刪除非空文件夾需要使用遞歸方式。
function
deleteFolderRecursive(path)
{
if(
fs.existsSync(path)
)
{
fs.readdirSync(path).forEach(function(file)
{
var
curPath
=
path
+
"/"
+
file;
if(fs.statSync(curPath).isDirectory())
{
//
recurse
deleteFolderRecursive(curPath);
}
else
{
//
delete
file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
總結
以上所述是小編給大家介紹的Node.JS循環刪除非空文件夾及子目錄下的所有文件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!