public bool FindEqualFile(Stream source, IEnumerable <MediaFile> files, bool leaveOpen, out MediaFile equalFile) { Guard.NotNull(source, nameof(source)); Guard.NotNull(files, nameof(files)); equalFile = null; try { foreach (var file in files) { source.Seek(0, SeekOrigin.Begin); using (var other = _storageProvider.OpenRead(file)) { if (source.ContentsEqual(other, true)) { equalFile = file; return(true); } } } return(false); } catch { return(false); } finally { if (!leaveOpen) { source.Dispose(); } } }
public Stream OpenRead() { return(_storageProvider?.OpenRead(File)); }