public virtual void Verify() { if (IsVerified || (_mediaStatus == TMediaStatus.Copying) || (_mediaStatus == TMediaStatus.CopyPending || _mediaStatus == TMediaStatus.Required)) { return; } if (_directory != null && System.IO.Directory.Exists(_directory.Folder) && !File.Exists(FullPath)) { _mediaStatus = TMediaStatus.Deleted; return; // in case that no file was found, and directory exists } try { FileInfo fi = new FileInfo(FullPath); if (fi.Length == 0L) { return; } if ((MediaType != TMediaType.Animation) && (MediaStatus == TMediaStatus.Unknown || MediaStatus == TMediaStatus.Deleted || MediaStatus == TMediaStatus.Copied || (MediaType != TMediaType.Still && Duration == TimeSpan.Zero) || FileSize != (UInt64)fi.Length || !LastUpdated.DateTimeEqualToDays(fi.LastWriteTimeUtc) )) { FileSize = (UInt64)fi.Length; LastUpdated = DateTimeExtensions.FromFileTime(fi.LastWriteTimeUtc, DateTimeKind.Utc); //this.LastAccess = DateTimeExtensions.FromFileTime(fi.LastAccessTimeUtc, DateTimeKind.Utc); if (SetField(ref _mediaStatus, MediaChecker.Check(this), nameof(MediaStatus))) { _directory?.OnMediaVerified(this); } } IsVerified = true; } catch (Exception e) { Logger.Error(e, "Verify {0} exception", this); Debug.WriteLine(e); } }