2012-11-28 23 views
9

Próbuję dokonać lokalnej plik xml parsowania „aplikacji” dla niektórych kolegów i używam bieżącą funkcję do pobierania plików:Ścieżka z ukośniki do ścieżki z ukośniki javascript

function ShowFolderFileList(folderspec) { 
    var fso, f, f1, fc, s; 
    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    f = fso.GetFolder(folderspec); 
    fc = new Enumerator(f.files); 
    s = ""; 
    for (; !fc.atEnd(); fc.moveNext()) { 
     var pathString = fc.item(); 
     $("#test").append(pathString + "<br />"); 
    } 
} 

problem z tej funkcji zwraca ciąg znaków podobny do:

C:\Users\SomeUser\Desktop\cool\Archief\CDATA1.xml 

muszę wymienić wsteczne ukośniki do ukośniki z całego łańcucha. Jak to zrobić?

Próbowałem metody Replace:

pathString.replace(/\\/g, "/") 

Ale to nie wydaje się rade.

Czy możecie mi pomóc? Metoda

+0

Jak udało Ci się zastąpić połączenie? Czy możesz dodać to do swojego przykładu? –

+0

Jeśli udzielona odpowiedź rozwiązała Twój problem, pamiętaj, aby ją zaakceptować. –

Odpowiedz

14

Metoda nie zmienia bieżącej instancji łańcucha, ale zwraca nową. Sprawdź, czy to działa:

pathString = pathString.replace(/\\/g,"/"); 

Zobacz this example on jsfiddle.

+0

Działa to tylko dlatego, że zmieniłeś dane wyjściowe z PO. Nigdy nie miał podwójnych cięć na swojej drodze. Pojedynczy ukośnik jest traktowany jako postać zręczna, więc zamiana nie zadziała. –

+0

Nie, nie sądzę. Jestem całkiem pewien, że 'ActiveXObject (" Scripting.FileSystemObject ")' tworzy poprawne ścieżki z prawidłowo unikniętymi ukośnikami. –

+0

Nie, nie, http://jsfiddle.net/NWCAn/153/ –