node-webkit разделитель файловой системы Windows?

В настоящее время я работаю над простым файловым проводником с NW.js. Я разрабатываю на Linux-машине, и там он работает нормально, пока сейчас, но я протестировал его в системе Windows на работе, и возникла проблема со списком всех файлов в каталоге. Я разработал его для работы в обеих системах (я думал), вот ссылка на мой репозиторий обратите внимание на файл: js/main.js, где я установил для переменной-разделителя значение «\» на платформах Windows (в функции: getRootDir()).

В JS это:

alert("\\");

дает мне: "\"

Разве это не разделитель окон?

Любая помощь будет оценена по достоинству.


person Wolfgaung    schedule 16.02.2015    source источник
comment
почему бы просто не использовать разделитель / для обеих платформ?   -  person exoddus    schedule 16.02.2015
comment
он не работает в обе стороны, но если быть более точным: он работает только (в обе стороны) с одной или двумя папками и двумя файлами, остальное игнорируется. Я написал тестовый скрипт, чтобы дать мне все в корне, и это сработало. Любые идеи?   -  person Wolfgaung    schedule 16.02.2015
comment
Вместо того, чтобы самостоятельно определять разделитель пути, позвольте узлу справиться с этим. Попробуйте обернуть свой путь в path.resolve (зарегистрируйте его в консоли, чтобы перепроверить). См. также gist.github.com/domenic/2790533.   -  person Mar    schedule 18.02.2015
comment
Спасибо, я уже решил это на win, корневой каталог должен быть: C:\\ --› C:\ а на linux это просто / разделитель win: \\ на linux: / я понял, что отображение корневого каталога не было проблема, но для отображения изображений на win вам нужно указать путь, как я написал. Надеюсь, это поможет кому-то.   -  person Wolfgaung    schedule 18.02.2015


Ответы (1)


Я немного поигрался и обнаружил, что асинхронный работает, а синхронный нет - здесь асинхронный:

        fs.lstat(rootElement.path + seperator + file, function(err, stats) {
            if (err) {throw err;}

            if (stats.isDirectory()) {
                createFolderView(rootElement, file);
            } else {
                createFileView(rootElement, file);
            }
        });

а вот синхронизация:

if (fs.lstatSync(rootElement.path + seperator + file).isDirectory()) {
   createFolderView(rootElement, file);
} else {
   createFileView(rootElement, file);
}

но не должно работать одинаково - или я что-то упустил?

person Wolfgaung    schedule 16.02.2015