2015-04-17 4 views
1

Я пробовал приведенный ниже код в NW.js для чтения во всех файлах с полным путем в заданной папке, но не работает. Что не так? Благодарю.node-webkit прочитать полный путь к файлам из каталога

function chooseFiles() { 
 
    var files = $('#fileDialog')[0].files; 
 
    for (var i = 0; i < files.length; ++i) { 
 
     console.log(files[i].path); 
 
    } 
 
} 
 
chooseFiles('#fileDialog');
<input type="file" id="fileDialog" nwdirectory />

+0

Кевин, вы можете уточнить, что «не работает»? Это расплывчато. Какой результат вы видите? Какие сообщения об ошибках? – jmort253

+0

@ jmort253, спасибо за ваш ответ. Когда я выбираю папку (выберите «Файл» -> -> ОК), она отобразит имя папки в диалоговом окне ввода, но не распечатает файлы в этой папке в консоли. Я хотел бы получить полный путь к этим файлам. Благодарю. –

+0

http://stackoverflow.com/a/5827895/552792 Помогает ли это? Возможно, вам придется прочитать файлы в каталоге, используя какой-либо другой метод. – jmort253

ответ

1

Я не уверен, что если вы используете именно код, который вы вставили здесь, но это, кажется, не делать ничего , когда пользователь фактически выбирает что-то. Если вы должны что-то выбрать, используя вход , тогда звоните chooseFiles() он должен работать. По крайней мере, это было в моем приложении nw.js, которое я быстро установил.

Если вы хотите, файлы появляются в console.log(), когда пользователь завершает свой выбор, я думаю, вы должны быть в состоянии сделать это, используя код ниже:

<html> 
<head> 
    <script src="jquery.js"></script> 
    <script> 
    $(function() { 
     $("#fileDialog").on("change", function() { 
      var files = $(this)[0].files; 
      for (var i = 0; i < files.length; ++i) { 
      console.log(files[i].path); 
      } 
     }); 
    }); 
    </script> 
</head> 
<body> 
    <input type="file" id="fileDialog" nwdirectory /> 
</body> 
</html> 

Если вы хотите, чтобы файлы были зарегистрированы сразу когда пользователь выбирает каталог с помощью диалогового окна файла, я думаю, что on("change") может быть тем, что вы ищете. Это работало для меня, используя nw.js v0.12, поэтому дайте ему шанс и посмотрите, что именно вы ищете.

+0

Hi thetoast, спасибо за ваше время. Я использую ту же версию nw.js. Я попробовал ваш код с новым nw.js v0.12, но все еще не смог распечатать файлы. В консоли единственной строкой, которую он печатает, является выбранный путь к папке. Я также пробовал с двумя версиями jquery diff (v1.9.1 и v2.1.3). Все еще не уверен, почему он не работает для меня. Я на Win7, если это делает любой diff. Благодарю. –

+0

@KevinH. Разве это имеет значение, если вы используете 'webkitdirectory' вместо' nwdirectory'? – thetoast

+0

'webkitdirectory' возвращает путь dir как' nwdirectory'. Я приму свой первый ответ, потому что он привел меня в правильном направлении. Еще раз спасибо! –

1

Я неправильно понял, как работает nwdirectory. NW Doc состояния «nwdirectory немного похож на webkitdirectory, поскольку он позволяет пользователю выбрать каталог тоже , но он не будет перечислять все файлы в каталоге, но непосредственно возвращает путь к директории»

Чтобы вернуть список файлов с путь Мне просто нужно использовать multiple в input вот так.

<input type="file" id="fileDialog" multiple />

Я также нашел рабочий код из How to find out if reading dir is completed читать и возвращать каталоги и файлы с выдвижным пути рекурсивно. Еще раз спасибо.

Смежные вопросы