如何使用fs.unlink删除带有特殊字符的文件

时间:2015-04-20 00:56:47

标签: node.js

我有一个循环浏览文件夹(fs.readdir)的函数,并使用fs.unlink为每个文件删除其中的所有文件。

问题是某些文件有特殊字符而无法删除,因为我收到此错误:

Error: ENOENT, no such file or directory './temp_files/Some�s in File�dio.txt'
显然,问题是因为???。但我还没有办法解决它。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我对此没有答案。我要做的是在上传文件时更改文件名。在我的情况下,我在后端使用MULTER和NODE.JS,因此可以达到目的:

storage = multer.diskStorage({
    destination: ....,
    filename: function(req, file, cb) {
        let newName = file.originalname
            .normalize('NFD')
            .replace(/[\u0300-\u036f]/g, '');
        newName = newName
            .split(' ')
            .join('_')
            .toLowerCase();
        cb(null, newName);
    }
});

它的作用是删除每个特殊字符,删除所有也会引起麻烦的空格原因,并用下划线替换。希望它对您有用

相关问题