Вам может быть полезен список дисков. Это модуль для перечисления всех подключенных дисков на вашем компьютере, как съемных, так и нет (помеченных логическим свойством system
). Это пример вывода из системы Linux:
[
{
device: '/dev/sda',
description: 'WDC WD10JPVX-75J',
size: '931.5G',
mountpoint: '/',
system: true
},
{
device: '/dev/sdb',
description: 'DataTraveler 2.0',
size: '7.3G',
mountpoint: '/media/UNTITLED',
name: '/dev/sdb',
system: false
}
]
Вы можете отфильтровать список по тем, у которых есть system: false
, чтобы получить съемные.
Что касается определения того, был ли подключен диск, вы можете вызывать drivelist
с интервалом и сравнивать новый результат со старым, чтобы определить какие-либо дополнения. Вы можете повторно использовать следующие код, выполняющий операцию сравнения двух выходных данных drivelist
::
_ = require('lodash')
containsDeep = (array, item) ->
return _.any(_.map(array, _.partial(_.isEqual, item)))
differenceDeep = (x, y) ->
return _.filter(x, _.partial(_.negate(containsDeep), y))
createDiffOperation = (type, element) ->
return {
type: type
drive: element
}
var drivelistDiff = (previous, current) ->
additions = differenceDeep(current, previous)
removals = differenceDeep(previous, current)
mappingAdditions = _.map(additions, _.partial(createDiffOperation, 'add'))
mappingRemovals = _.map(removals, _.partial(createDiffOperation, 'remove'))
return {
drives: current
diff: _.union(mappingAdditions, mappingRemovals)
}
person
jviotti
schedule
01.04.2016