Если это окно (который я предполагаю, что это), то вам нужно сделать пару вещей:
- использовать полный путь (буквы дисков в порядке, но вы также можете использоватьUNC-пути в окнах) в нужный каталог.
- Побег любой обратной косой черты в определении строки с дополнительной обратной косой чертой.
- Всегда используйте обработку ошибок в обратном вызове
fs.readdir()
, поэтому, если есть ошибка, вы можете точно увидеть, что такое ошибка.
Рабочий код:
const fs = require('fs');
const testFolder = 's:\\test';
fs.readdir(testFolder, (err, files) => {
if (err) return console.log(err);
files.forEach(file => {
console.log(file);
});
});
Я просто попробовал этот код на моем собственном жестком диске, и она работает просто отлично.
И FYI я почти всегда использовать ES6 for/of
сейчас в современном Node.js, а не .forEach()
, потому что это гораздо более эффективным для переводчика, и это дает вам больше контроля цикла (например, вы можете использовать break
для выйти из цикла).
const testFolder = 's:\\test';
const fs = require('fs');
fs.readdir(testFolder, (err, files) => {
if (err) return console.log(err);
for (let file of files) {
console.log(file);
}
});
, пожалуйста, используйте полный адрес привода (s это просто сокращенный вариант полного пути) ... этот пост может помочь вам http://stackoverflow.com/questions/34837954/use-node- js-to-access-a-local-network-drive – ymz
Вы правы, я думал, что попробовал, но я ошибся. Спасибо. – mathExpl
Также сначала поймайте ошибку: 'if (err) return console.error (err)' или даже лучше использовать Promisified 'fs' – Matt