Работа с файловой системой
Я делаю плеер на 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, время: 03:38. |