Вопрос

Я в настоящее время работаю над службой Windows, чтобы скопировать данные из наших камер безопасности, так как она записывается в каталог диска Google на компьютере для мгновенной загрузки. Файлы доступны сразу после создания при условии предоставленного программного обеспечения воспроизведения, поэтому мы хотели бы, если возможно, немедленно скопировать поток данных, таким образом у нас есть несколько видео, даже если запись прерывается (файлы имеют 10-минутные блоки времени).

У меня в настоящее время есть созданная услуга, которая может наблюдать за каталогом, однако у меня есть некоторые трудности, определяя лучший способ посмотреть эти файлы. Поскольку они непрерывно изменяются в течение 10 минут, я получу большое количество измененных событий. Я надеялся, что может быть способ, которым я могу захватить начальное создание и начать трансмировать данные во второй файл. Моя проблема здесь состоит в том, чтобы я не должен убедиться, что я не переполняет запись записи.

Если это невозможно или относительно простое, то мне просто нужно обнаружить, когда файл больше не будет записан, используя некоторую логику с последним временем записи, но я ищу предложения о том, что лучше Это может быть. Я знаю о решениях, предложенных Здесь , но я не уверен, если они применяются к ситуации, с которой я имею дело. Существует большое количество файлов в подкататорах, поэтому пытаясь отслеживать, какие файлы, которые у меня есть, больше не вызывают события, могут стать очень грязными. У кого-нибудь есть какие-либо предложения о том, как сделать любой из этих методов?

Это было полезно?

Решение

Вы можете попытаться сделать это, но если честно, это похоже на взлом, и я скептически, что Windows есть какой-либо поддерживаемый метод для того, чтобы делать то, что вы пытаетесь сделать.По сути, вы пытаетесь слушать в потоке записи.

Звучит как бы все, что вы работаете, с которым вы работаете, является черным ящиком, поэтому доступ к потоку непосредственно, вероятно, не является опцией.Тем не менее, есть еще один подход.Я бы посмотрел на то, как вы можете создать виртуальный диск с вашим приложением в Windows.Таким образом, вы можете записать приложение записи на ваш виртуальный путь привода, который позволит вам обработать потоки, однако вам понравится.Который может включать в себя письмо в два отдельных места одновременно.Как Google Drive, так и какое-то локальное хранение какого-то вида, например.

Вот вопрос стойки для создания виртуальных дисков, которые должны начать: C #: Создайте виртуальный диск в компьютере

Другие советы

hmmm ... Вы можете попробовать использовать таймер ... таким образом, вы можете ограничить, когда он срабатывает

private Boolean TimeToCheck=false;
public static void Run()
{   Timer timer=new Timer(2000); //2 seconds
    FileSystemWatcher fileWatch=new FileSystemWatcher();
    fileWatch.Path="DirToWatch";
    fileWatch.Filter="fileToWatch";
    fileWatch.Changed += new FileSystemEventHandler(OnChanged);
    fileWatch.Created += new FileSystemEventHandler(OnChanged);
    fileWatch.Deleted += new FileSystemEventHandler(OnChanged);
    //If you want rename, you could use the rename event as well  fileWatch.Renamed += new RenamedEventHandler(OnRenamed);
    timer.Elapsed += new ElapsedEventHandler(timer_done);
    watcher.EnableRaisingEvents = true;
    timer.Enabled = true; // Enable it
}

private static void OnChanged(object source, FileSystemEventArgs e)
{
    if(TimeToCheck)
    {
        TimeToCheck=false;
        timer.Enabled = false; // Enable it
        //move the files
        timer.Enabled = true; // Enable it
    }

}
private static void OnRenamed(object source, RenamedEventArgs e)
{
    if(TimeToCheck)
    {
        TimeToCheck=false;
        timer.Enabled = false; // Enable it
        //move the files
        timer.Enabled = true; // Enable it
    }
}
private static void timer_done(object sender, ElapsedEventArgs e)
{
    TimeToCheck=true;
}
.

Вы смотрели на FileSystemWatcher объектом?Если я правильно понимаю вопрос, это может быть то, что вы можете использовать .... Если вы должны были поместить этот файл безопасности в определенный каталог, вы можете использовать файл.Copy, чтобы переместить обновленную безопасность вПапка Google Drive ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top