如何使用Node.js刪除目錄中的所有文件而不刪除目錄本身?
我想刪除臨時文件。我對文件系統沒有任何好處。如何在不刪除Node.js中的目錄的情況下從目錄中刪除所有文件
我找到了this方法,它將刪除文件和目錄。在那,像/path/to/directory/*
這樣的東西將無法正常工作。
我真的不知道應該使用什麼命令。謝謝您的幫助。
如何使用Node.js刪除目錄中的所有文件而不刪除目錄本身?
我想刪除臨時文件。我對文件系統沒有任何好處。如何在不刪除Node.js中的目錄的情況下從目錄中刪除所有文件
我找到了this方法,它將刪除文件和目錄。在那,像/path/to/directory/*
這樣的東西將無法正常工作。
我真的不知道應該使用什麼命令。謝謝您的幫助。
要從目錄中刪除所有文件,首先需要使用fs.readdir
列出目錄中的所有文件,然後可以使用fs.unlink
刪除每個文件。另外fs.readdir
將只提供文件名,您需要用目錄名稱連接以獲取完整路徑。
下面是一個例子
const fs = require('fs');
const path = require('path');
const directory = 'test';
fs.readdir(directory, (err, files) => {
if (err) throw err;
for (const file of files) {
fs.unlink(path.join(directory, file), err => {
if (err) throw err;
});
}
});
這很好用,而且大多數已經有fs和路徑需要,所以這是一個獎勵,不需要額外的軟件包。我剛剛換了'test'for path.join(__ dirname,'../../public/uploads') – russiansummer 2017-12-14 18:18:54
有呼包rimraf這是非常方便的。它是節點的UNIX命令rm -rf。
不過,它也可能太強大了,因爲你可以很容易地使用它刪除文件夾。以下命令將刪除文件夾內的文件。如果您刪除*,您將刪除日誌文件夾。
const rimraf = require('rimraf');
rimraf('./log/*', function() { console.log('done'); });
如果你想使用通配符,請https://www.npmjs.org/package/glob。 – 2014-11-22 01:03:44
只是查看API,它有什麼難的?您必須將文件放入目錄中,然後刪除它們。 – Sikorski 2014-11-22 01:05:52
Glob完成了工作,謝謝! – youbetternot 2014-11-22 01:14:08