我在想如何以编程方式在文件路径中出现的空格前添加\
。我正在使用fs.readdir
来获取目录的内容,如果我不逃离路径之外的空间,那么我得到一个ENOENT
错误,因为在UNIX中非转义路径无效。我想得到以下结果:转义文件路径中的空格
/path/with\ spaces/in/them/
但是,我遇到了与NODE REPL REGEX的问题。当我这样做:
var path = '/path/with spaces/in/them/';
var escapedPath = path.replace(/(\s)/, "\\ ");
我得到的结果是:
'/path/with\\ spaces/in/them/'
当我尝试到Chrome控制台内运行相同的代码,我得到:
"/path/with\ spaces/in/them/"
即所需影响。
我不确定我是否错过了某些东西,或者这是一个错误。我很困惑,因为Node运行在与Chrome相同的JavaScript引擎上,所以我认为这些表达式会被解释为相同。
请让我知道,如果有人知道一种方法来解决这个问题。也许我错过了一些东西。我只需要能够在将它们传递到fs.readdir
之前就可以逃脱路径,以便我可以避免这些错误。
谢谢!
听起来像'fs.readdir'给我的错误。 –
Chrome和Node.js中的实际结果相同。不同的是他们如何显示它。尝试在'node.js'中添加'console.log',你会看到相同的结果。 –
至于非转义字符串,fs。readFile'可以很好地处理'fs.readdir'的输出。 –