Удаление видео по длительности

CJeyZ

Client
Регистрация
12.04.2019
Сообщения
30
Благодарностей
2
Баллы
8
Здравствуйте. Не нашел похожей темы, поэтому пришлось создать. Задача такая, требуется научить шаблон удалять видео в определенной папке с не удовлетворяющей длительностью, т.е. видео длительностью меньше 5 сек должны быть удалены. Видео все в mp4 формате. Есть ли такая возможность в С# или может надо искать в сообществах BATников?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 404
Благодарностей
3 323
Баллы
113
Подключить к проекту WMPLib.dll и использовать сниппет:
C#:
string[] files = Directory.GetFiles(@"D:\path");

foreach(string path in files){
    WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayerClass();
    WMPLib.IWMPMedia mediaInfo = wmp.newMedia(path);
    if(mediaInfo.duration < 5) // 5 сек
        { File.Delete(path); }
}
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: CJeyZ и evgen_po

CJeyZ

Client
Регистрация
12.04.2019
Сообщения
30
Благодарностей
2
Баллы
8
Спасибо! Вроде работает. Хотя при первом запуске удалились все видео. Может это быть из за имен файлов?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 404
Благодарностей
3 323
Баллы
113

CJeyZ

Client
Регистрация
12.04.2019
Сообщения
30
Благодарностей
2
Баллы
8
Подключить к проекту WMPLib.dll и использовать сниппет:
C#:
string[] files = Directory.GetFiles(@"D:\path");

foreach(string path in files){
    WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayerClass();
    WMPLib.IWMPMedia mediaInfo = wmp.newMedia(path);
    if(mediaInfo.duration < 5) // 5 сек
        { File.Delete(path); }
}
Подскажите пожалуйста, что я делаю не так. Я только учусь на C# что-то делать и пытаюсь вызвать переменную проекта из входных настроек, чтобы путь там указать, но у меня выдает ошибку.
Код:
string pt = project.Variables["q"].Value;
string[] files = Directory.GetFiles["pt"];
foreach(string path in files){
    WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayerClass();
    WMPLib.IWMPMedia mediaInfo = wmp.newMedia(path);
    if(mediaInfo.duration < 5) // 5 сек
        File.Delete(path);
}
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 404
Благодарностей
3 323
Баллы
113

CJeyZ

Client
Регистрация
12.04.2019
Сообщения
30
Благодарностей
2
Баллы
8
Код:
string pt = project.Variables["q"].Value;
string[] files = Directory.GetFiles[pt];

foreach(string path in files){
    WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayerClass();
    WMPLib.IWMPMedia mediaInfo = wmp.newMedia(path);
    if(mediaInfo.duration < 5) // 5 сек
        { File.Delete(path); }
}
Все равно ошибка
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 404
Благодарностей
3 323
Баллы
113

CJeyZ

Client
Регистрация
12.04.2019
Сообщения
30
Благодарностей
2
Баллы
8
Спасибо, заработало. Т.е. внутренние переменные блока C# мы назначаем уже в округлых скобках?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 404
Благодарностей
3 323
Баллы
113
внутренние переменные блока C# мы назначаем уже в округлых скобках?
Скобки указывают с какими параметрами будет вызван метод GetFiles.
Переменные зенки указываются строкой, для поиска в коллекции project.Variables нужного обьекта ILocalVariable и уже получения из его значения переменной (Value).
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)