public override void OnEvent([GeneratedEnum] FileObserverEvents e, string path) { if (EventFired != null) { EventFired(this, new PlatformFileSystemWatcherChanged(e, path)); } }
private void CreateFileObserver(string path) { // FileObserverEvents.Create | FileObserverEvents.Delete | FileObserverEvents.MovedFrom | FileObserverEvents.MovedTo; const FileObserverEvents Mask = FileObserverEvents.Create | FileObserverEvents.Delete | FileObserverEvents.MovedFrom | FileObserverEvents.MovedTo | (FileObserverEvents)0x40000000; Console.WriteLine(Mask.ToString()); fileObserver = new FilePickerFileObserver(path, Mask); fileObserver.OnFileEvent += (events, s) => { LogDebug(string.Format("FileObserver event received - {0}", events)); if ((events & (FileObserverEvents)0x40000000) == (FileObserverEvents)0x40000000) { Console.WriteLine("Folder event"); } events &= FileObserverEvents.AllEvents; var eventName = Enum.GetName(typeof(FileObserverEvents), events); Console.WriteLine(eventName); if ((events & Mask) == events) { if (Activity != null) { Activity.RunOnUiThread(RefreshFilesList); } } }; }
public RecursiveFileObserver(string path, OnFileObserverEvent ev, FileObserverEvents mask = FileObserverEvents.AllEvents) : base(path, mask) { mPath = path; mMask = mask; mEvent = ev; }
public override void OnEvent(FileObserverEvents ev, string path) { Log.Debug(Tag, "StartWatchingFileObserver: OnEvent " + ev + " " + path); if ((ev & FileObserverEvents.Create) != 0 && path.Equals("Screenshots", StringComparison.InvariantCultureIgnoreCase)) { Log.Debug(Tag, "StartWatchingFileObserver: OnEvent " + ev + " " + path + " started watching"); this.fileObserver.StartWatching(); } }
public override void OnEvent(FileObserverEvents e, String path) { //Android.Util.Log.Info("File event", String.Format("{0}:{1}", path, e)); if ((e & Events) != 0) { lock (DirDictLock) { StopWatching(); _dirDict = null; } } }
public override void OnEvent(FileObserverEvents ev, string path) { Log.Debug(Tag, "UploadFileObserver: OnEvent " + ev + " " + path); if ((ev & FileObserverEvents.CloseWrite) != 0) { string screenshotFile = this.ssFolder + sep + path; Log.Debug(Tag, "UploadFileObserver: OnEvent " + ev + " at " + screenshotFile); if (!(new Java.IO.File(screenshotFile)).Exists()) { return; } Log.Debug(Tag, "UploadFileObserver: OnEvent " + ev + " " + path + " started bitmapping"); SmartPrintScreen.Upload(this.service, screenshotFile); } }
private void WriteAndSend(NotificationSender sender, string path, FileObserverEvents events) { string message = string.Format(GetString(Resource.String.category_system_notif_modification_detected), events, path); string fullMessage = $"{new Date().GetFormattedDateTime()} : {message}"; using (StreamWriter writer = new StreamWriter(OpenFileOutput(LogFile, FileCreationMode.Append))) { writer.WriteLine(fullMessage); } using (StreamWriter writer = new StreamWriter(OpenFileOutput(AlarmReceiver.CurrentSummaryFile, FileCreationMode.Append))) { writer.WriteLine(fullMessage); } sender.PutNormalizeExtra(ExtraFilePath, path); sender.PutNormalizeExtra(ExtraFileEvent, events.ToString()); sender.Send(NotificationType.WarningNotification, message); }
public override void OnEvent([GeneratedEnum] FileObserverEvents e, string pathRelativeToWatcher) { System.Diagnostics.Debug.WriteLine($"ANDROID FILEOBSERVER: {e}: {pathRelativeToWatcher}"); bool found = _storedObservables.TryGetValue(_watchedPath, out Subject <FileChangedEvent> observable); string name = Path.GetFileNameWithoutExtension(pathRelativeToWatcher); string fullPath = Path.Combine(_watchedPath, pathRelativeToWatcher); switch (e) { case FileObserverEvents.Create: observable.OnNext(new FileChangedEvent(fullPath, name, WatcherChangeTypes.Created)); break; case FileObserverEvents.Delete: observable.OnNext(new FileChangedEvent(fullPath, name, WatcherChangeTypes.Deleted)); break; case FileObserverEvents.Modify: observable.OnNext(new FileChangedEvent(fullPath, name, WatcherChangeTypes.Changed)); break; // Android doesn't have a rename event--instead, it fires a MovedFrom, followed by a MovedTo. // There's no way reliably track a file from one folder to the next, so treat MovedFrom as a Delete, // and MovedTo as a Create. case FileObserverEvents.MovedFrom: observable.OnNext(new FileChangedEvent(fullPath, name, WatcherChangeTypes.Deleted)); break; case FileObserverEvents.MovedTo: observable.OnNext(new FileChangedEvent(fullPath, name, WatcherChangeTypes.Created)); break; default: break; } }
public override void OnEvent([GeneratedEnum] FileObserverEvents e, string path) { if (string.IsNullOrWhiteSpace(path) == false) { string fullPath = Path.Combine(_path, path); if (e == FileObserverEvents.Create) { _paths.Add(fullPath); } else if (e == FileObserverEvents.MovedTo || _paths.Contains(fullPath)) { _paths.Remove(fullPath); try { ICursor cursor = null; string fileExtension = MimeTypeMap.GetFileExtensionFromUrl(path); string mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension(fileExtension); DateTime timestamp = DateTime.UtcNow; bool createDatum = false; if (mimeType != null) { // check if the file is an image or a video and then query the appropriate content uri if (mimeType.StartsWith(ImageMetadataProbe.IMAGE_DISCRETE_TYPE)) { cursor = Application.Context.ContentResolver.Query(MediaStore.Images.Media.ExternalContentUri, new string[] { MediaStore.Images.Media.InterfaceConsts.DateTaken }, MediaStore.Images.Media.InterfaceConsts.Data + $" = ?", new string[] { fullPath }, MediaStore.Images.Media.InterfaceConsts.DateTaken + " DESC LIMIT 1"); createDatum = cursor.MoveToNext(); if (createDatum) { timestamp = DateTimeOffset.FromUnixTimeMilliseconds(cursor.GetLong(cursor.GetColumnIndex(MediaStore.Images.Media.InterfaceConsts.DateTaken))).DateTime; } } else if (mimeType.StartsWith(ImageMetadataProbe.VIDEO_DISCRETE_TYPE)) { cursor = Application.Context.ContentResolver.Query(MediaStore.Video.Media.ExternalContentUri, new string[] { MediaStore.Video.Media.InterfaceConsts.DateTaken }, MediaStore.Video.Media.InterfaceConsts.Data + $" = ?", new string[] { fullPath }, MediaStore.Video.Media.InterfaceConsts.DateTaken + " DESC LIMIT 1"); createDatum = cursor.MoveToNext(); if (createDatum) { timestamp = DateTimeOffset.FromUnixTimeMilliseconds(cursor.GetLong(cursor.GetColumnIndex(MediaStore.Video.Media.InterfaceConsts.DateTaken))).DateTime; } } if (createDatum) { Task.Run(async() => { await _probe.CreateAndStoreDatumAsync(fullPath, mimeType, timestamp); }); } } } catch (AggregateException ex) { SensusServiceHelper.Get().Logger.Log("Exception while querying images: " + ex.Flatten().InnerExceptions.First().Message, LoggingLevel.Normal, GetType()); } catch (Exception ex) { SensusServiceHelper.Get().Logger.Log("Exception while querying images: " + ex.Message, LoggingLevel.Normal, GetType()); } } } }
/// <inheritdoc /> public FilePickerFileObserver(string path, FileObserverEvents mask) : base(path, mask) { }
/// <inheritdoc /> public override void OnEvent(FileObserverEvents e, string path) { OnFileEvent(e, path); }
public override void OnEvent(FileObserverEvents ev, string path) { mRecursiveFileObserver.OnEvent(ev, mPath + "/" + path); }
public override void OnEvent(FileObserverEvents e, string path) { _owner.FileChanged(File.ReadAllText(_owner._path)); }
public override void OnEvent(FileObserverEvents e, String path) { // Log.Info(tag, String.Format("{0}:{1}", path, e)); MessagingCenter.Send(this, "FechaBD", "33"); }
public PlatformFileSystemWatcherChanged(FileObserverEvents fileObserverEvent, string path) { this.fileObserverEvent = fileObserverEvent; this.path = path; }
public CrossPlatFileObserver(string path, FileObserverEvents events) : base(path, events) { _watchedPath = path; }
public override void OnEvent(FileObserverEvents e, string path) { if (Event != null) Event(this, path); }
public CustomFileObserver(string path, FileObserverEvents mask) : base(path, mask) { }
public MyPathObserver(String rootPath, FileObserverEvents events) : base(rootPath, events) { Log.Info(tag, String.Format("Watching : {0} : {1}", rootPath, events)); }
public override void OnEvent(FileObserverEvents e, string path) { mEvent?.Invoke(e, path); }
public override void OnEvent(FileObserverEvents e, String path) { Log.Info(tag, String.Format("{0}:{1}", path, e)); }
public SingleFileObserver(RecursiveFileObserver parent, string path, FileObserverEvents mask) : base(path, mask) { mRecursiveFileObserver = parent; mPath = path; }