Escape Leerzeichen im Dateipfad

Frage ich mich, wie kann ich programmgesteuert hinzufügen \ vor Leerzeichen in Datei-Pfaden. Ich bin mit fs.readdir um den Inhalt von Verzeichnissen und wenn ich nicht entkommen, die Leerzeichen aus dem Pfad dann habe ich eine ENOENT Fehler, weil nicht korrekt codierten Pfade ungültig sind in UNIX. Ich möchte unter Ergebnis :

/path/with\ spaces/in/them/

Jedoch habe ich ein problem mit einem REGEX in der NODE REPL. Wenn ich das mache :

var path = '/path/with spaces/in/them/';
var escapedPath = path.replace(/(\s)/, "\\ ");

Bekomme ich als Ergebnis :

'/path/with\\ spaces/in/them/'

Wenn ich versuche, führen Sie diesen gleichen code in der Chrome-Konsole bekomme ich :

"/path/with\ spaces/in/them/"

Was ist der gewünschte Effekt.

Ich bin nicht sicher, ob mir etwas fehlt oder ob das ein bug ist. Ich bin verwirrt, weil Knoten läuft auf die gleiche Javascript-engine wie Chrome, so würde ich denken, dass diese Ausdrücke würden interpretiert werden, die gleichen.

Bitte lassen Sie mich wissen, ob jemand weiß einen Weg, um dies zu umgehen. Vielleicht bin ich etwas fehlt. Ich muss nur in der Lage zu entkommen die Pfade, bevor Sie Sie in fs.readdir so dass ich vermeiden Sie diese Fehler.

Dank!

  • Klingt wie ein bug in fs.readdir zu mir.
  • Die tatsächlichen Ergebnisse sind die gleichen in Chrom und in Node.js. Der Unterschied ist, wie Sie zeigt es. Versuchen Sie console.log im node.js und du wirst sehen, das gleiche Ergebnis.
  • Als für nicht korrekt codierten strings, fs.readFile gut funktioniert mit dem Ausgang des fs.readdir.
  • Danke Leonid! Ich war zu sehen, das problem innerhalb der REPL, aber wenn ich die erstellte test-Datei und Konsole protokolliert die escapedPath variable es war in der Tat entkam richtig. Es stellt sich heraus, dass fs.readdir nicht benötigen Sie, um zu entkommen die Pfade überhaupt. Ich hatte tatsächlich noch ein Fehler in meinem code, war ein wenig härter auf die Spur. Ich dachte, das problem war aus nicht die Flucht der Eingang zu fs.readdir aber das war nicht das problem.
  • dass gleiche problem mit fs.umbenennen() ENOENT. (q-io/fs) bug?
InformationsquelleAutor kevin | 2013-07-31
Schreibe einen Kommentar