Javascript 如何在NodeJS中使用fs删除扩展名未知的文件?
我想删除名为Javascript 如何在NodeJS中使用fs删除扩展名未知的文件?,javascript,node.js,fs,Javascript,Node.js,Fs,我想删除名为myfile且具有任何扩展名的文件 const fs = require('fs') const ext = '' ; //this extension may be anything const path = './myfile.'+ext ; fs.unlink(path, (err) => { if (err) { console.error(err) return } //file removed }) 我得到
myfile
且具有任何扩展名的文件
const fs = require('fs')
const ext = '' ; //this extension may be anything
const path = './myfile.'+ext ;
fs.unlink(path, (err) => {
if (err) {
console.error(err)
return
}
//file removed
})
我得到的错误是:
没有名为myfile的文件或目录
但是我想删除一个名为
myfile.jpg
的文件。让我们假装我们不知道分机。如何删除它?取消链接不支持正则表达式删除文件。您可能需要遍历文件夹,找到以“myfile”开头的文件名,并相应地将其删除
const fs = require('fs');
const director = 'path/to/directory/'
fs.readdir(directory, (err, files) => {
files.forEach(file => {
if(file.split('.')[0] == 'myfile') fs.unlink( directory + file );
});
});
取消链接不支持正则表达式删除文件。您可能需要遍历文件夹,找到以“myfile”开头的文件名,并相应地将其删除
const fs = require('fs');
const director = 'path/to/directory/'
fs.readdir(directory, (err, files) => {
files.forEach(file => {
if(file.split('.')[0] == 'myfile') fs.unlink( directory + file );
});
});
这回答了你的问题吗?添加了一个链接,显示如何查找所有文件,然后匹配扩展名<代码>取消链接需要指定一个特定的路径,因此您首先必须找到要事先删除的所有文件。没有神奇的功能。您必须编写自己的算法。获取目录中所有文件的列表。对于数组中的每个文件名,查找与所需名称匹配的所有文件名(您可以使用filter:
array.filter(x=>x.match(/^myfile.*/)
或者如果您不熟悉regexparray.filter(x=>x.substr(0,7)==='myfile.')
)。然后对找到的每个文件名删除it@slebetman谢谢,但是如果我们有数千个文件,这个方法会花费很多时间,因为它必须获取所有文件。任何方法,即使是允许您指定文件名模式的方法,都必须遍历磁盘才能找到文件。这就是硬盘和文件系统的工作原理(各种操作系统中都有索引系统,可以加快搜索整个磁盘的速度,但通常搜索单个文件夹的速度要比旧方法快——此外,你不能相信所有启用索引系统的人,除了大多数人不知道如何关闭的Mac OS上的Spotlight之外)这回答了你的问题吗?添加了一个链接,显示如何查找所有文件,然后匹配扩展名<代码>取消链接需要指定一个特定的路径,因此您首先必须找到要事先删除的所有文件。没有神奇的功能。您必须编写自己的算法。获取目录中所有文件的列表。对于数组中的每个文件名,查找与所需名称匹配的所有文件名(您可以使用filter:array.filter(x=>x.match(/^myfile.*/)
或者如果您不熟悉regexparray.filter(x=>x.substr(0,7)==='myfile.')
)。然后对找到的每个文件名删除it@slebetman谢谢,但是如果我们有数千个文件,这个方法会花费很多时间,因为它必须获取所有文件。任何方法,即使是允许您指定文件名模式的方法,都必须遍历磁盘才能找到文件。这就是硬盘和文件系统的工作原理(各种操作系统中都有索引系统,可以加快搜索整个磁盘的速度,但通常搜索单个文件夹的速度要比旧方法快——此外,你不能相信所有启用索引系统的人,除了大多数人不知道如何关闭的Mac OS上的Spotlight之外)因此,该方法的思想是获取目录以查找具有该名称的任何文件。。如果我们有多个文件具有相同的名称和不同的ext,这也会起作用,非常感谢。因此,这种方法的思想是获取目录以查找任何具有该名称的文件。。如果我们有多个文件具有相同的名称和不同的ext,这也会起作用,非常感谢。