public static IParsedVolume Parse(string filename, Library.Interface.IFileEntry file = null) { var m = FILENAME_REGEXP.Match(filename); if (!m.Success || m.Length != filename.Length) { return(null); } RemoteVolumeType t; if (!REVERSE_REMOTE_TYPENAME_MAP.TryGetValue(m.Groups["filetype"].Value, out t)) { return(null); } return(new ParsedVolume() { Prefix = m.Groups["prefix"].Value, FileType = t, Guid = m.Groups["guid"].Success ? m.Groups["guid"].Value : null, Time = m.Groups["time"].Success ? Library.Utility.Utility.DeserializeDateTime(m.Groups["time"].Value).ToUniversalTime() : new DateTime(0, DateTimeKind.Utc), CompressionModule = m.Groups["compression"].Value, EncryptionModule = m.Groups["encryption"].Success ? m.Groups["encryption"].Value : null, File = file }); }
public RemoteVolume(Library.Interface.IFileEntry file, string hash = null) { this.Name = file.Name; this.Size = file.Size; this.Hash = hash; this.File = file; }
public static IParsedVolume ParseFilename(Library.Interface.IFileEntry file) { return(ParsedVolume.Parse(file.Name, file)); }