我在想如何以編程方式在文件路徑中出現的空格前添加\
。我正在使用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'的輸出。 –