Работа с файловой системой
Я делаю плеер на node-webkit, подскажите как через javascript, jquery или в крайнем случае через node.js можно производить поиск файлов mp3 по файловой системе или внутри определённой папки и возможно ли это вообще?
|
Вот почти то, что и хотелось. Немного неясно как заставить это искать mp3, но я справлюсь.
|
Цитата:
|
Разве что-то неверно сказал? Вопрос был про поиск файлов на компе, довольно четко сформулирован. Я немного отредактировал скрипт со стакаоверфлёуа и теперь он исчет мп3 файлы в указанной папке:
var mp3find = /\.mp3$/; var fs = require('fs'); var walk = function(dir, done) { var results = []; fs.readdir(dir, function(err, list) { if (err) return done(err); var pending = list.length; if (!pending) return done(null, results); list.forEach(function(file) { file = dir + '/' + file; fs.stat(file, function(err, stat) { if (stat && stat.isDirectory()) { walk(file, function(err, res) { results = results.concat(res); if (!--pending) done(null, results); }); } else { if(mp3find.test(file)){results.push(file)} if (!--pending) done(null, results); } }); }); }); }; walk('D:\\node-webkit', function(err, results) { if (err) throw err; console.log(results); }); Не знаю пока, как обнаруживать разделы диска программно, но скоро узнаю. Совсем не откажусь от наводочки на то, как же все таки получить массив вроде ['C://','D://'] |
Вот этот милый код кладёт названия дисков в массив:
var partfind = /[A-Z]:\s/; var partitions = []; var spawn = require('child_process').spawn, list = spawn('cmd'); list.stdout.on('data', function (data) { console.log(''+data); if(partfind.test(data)){partitions.push((''+data)[0])} }); list.stderr.on('data', function (data) { console.log('stderr: ' + data); }); list.on('exit', function (code) { console.log(partitions); alert(partitions) }); list.stdin.write('wmic logicaldisk get name\n'); list.stdin.end(); Только там кроме нужных ещё дисковод, дискетовод и дэймонтулз, но это не страшно. |
Цитата:
|
Часовой пояс GMT +3, время: 12:43. |