2015-06-27 3 views
2

У меня есть наблюдатель из пакета chokidar для просмотра файлов и подкаталогов внутри указанной папки.Node.js получает исходный размер файла от источника при копировании в другой пункт назначения

Всякий раз, когда я копирую большой файл из одного источника в эту папку, я получаю более одного события «filechange» для этого файла от наблюдателя. Я понимаю, почему наблюдатель сообщает о нескольких событиях смены файла, но я должен передавать данные на сервер на эти события обмена файлами, и эта часть делает мой код очень ОЧЕНЬ сложным.

Есть ли способ получить исходный размер файла от источника, чтобы я мог регулировать, когда можно начать потоковое вещание?

+0

ли 'stats' переменный посланные на файл сторож' change' событие имеет данные неправильного размера? 'watcher.on ('change', function (path, stats) {if (stats) console.log (stats.size);});' – hassansin

+0

нет размера точный, но он испускает несколько событий изменения в середине копирование, которое делает обработку обратного вызова расстраивающей – user3467433

ответ

3

Используйте асинхронный метод fs.stat():

fs.stat(__dirname + '/path/to/original/file.ext', function (err, stat) { 
    if (err) return console.error(err); 

    console.log(stat.size); 
    // do something with it 
}); 
+1

, но наблюдатель может просматривать файлы только в указанной директории. Есть ли способ, которым я могу получить путь к исходному файлу на файлообмене? Есть ли у Fs.Stats какие-либо функции? – user3467433

+0

@ user3467433 Я не уверен. Вы должны предоставить ссылку на модуль, который вы используете, и я посмотрю. –

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