Когда-то... делал на виндовом повершелле такую ерунду:
если в определенную папку, лежащую на серваке закидывался mp3-файл, файл добавлялся в плейлист винампа моего компа. Таким образом, получалось своеобразное радио по заявкам. Каждый сидящий в кабинете мог закинуть со своего компа в папочку музычку, которую хочет послушать и, рано или поздно, в порядке очереди, музычка проигрывалась.
Код был типа что-то такого (не могу сказать, что это была последняя версия кода, давно это было)
Код:
# запускаем винамп
&"C:\Program Files (x86)\Winamp\winamp.exe"
# Каталог, за которым будем подглядывать
$Path = "F:\MUSIC"
# [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# $oReturn=[System.Windows.Forms.Messagebox]::Show("Включено!")
#событие будет висеть до закрытия текущего сеанса PowerShell или если вручную отменить регистрацию события Unregister-Event $ changed.Id
$fsw = New-Object IO.FileSystemWatcher $Path, "*.mp3" -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$FullPath = $Event.SourceArgs[-1].FullPath
&"C:\Program Files (x86)\Winamp\winamp.exe" "/ADD", $FullPath
}
# ждем нажатие любом кнопки - окно шелла закроется, все перестанет работать
do
{
}
until ([System.Console]::KeyAvailable)
К чему это я?
Думаю, что с помощью powershell или какого-нибудь системного скриптового языка можно сделать "горячую" папку. А, уж, что делать с файлами в этой папке, скриптом точно можно было бы разрулить.
Но это, конечно, не всё в одном флаконе и сразу.