public AudioBookFileInfo Resolve(string path, bool IsDirectory = false) { if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentNullException("path"); } if (IsDirectory) { return(null); } var extension = Path.GetExtension(path) ?? string.Empty; // Check supported extensions if (!_options.AudioFileExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase)) { return(null); } var container = extension.TrimStart('.'); var parsingResult = new AudioBookFilePathParser(_options, _iRegexProvider) .Parse(path, IsDirectory); return(new AudioBookFileInfo { Path = path, Container = container, PartNumber = parsingResult.PartNumber, ChapterNumber = parsingResult.ChapterNumber, IsDirectory = IsDirectory }); }
public AudioBookFileInfo Resolve(string path, bool isDirectory = false) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException(nameof(path)); } // TODO if (isDirectory) { return(null); } var extension = Path.GetExtension(path); // Check supported extensions if (!_options.AudioFileExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase)) { return(null); } var container = extension.TrimStart('.'); var parsingResult = new AudioBookFilePathParser(_options).Parse(path); return(new AudioBookFileInfo { Path = path, Container = container, PartNumber = parsingResult.PartNumber, ChapterNumber = parsingResult.ChapterNumber, IsDirectory = isDirectory }); }
/// <summary> /// Resolve specifics (path, container, partNumber, chapterNumber) about audiobook file. /// </summary> /// <param name="path">Path to audiobook file.</param> /// <returns>Returns <see cref="AudioBookResolver"/> object.</returns> public AudioBookFileInfo?Resolve(string path) { if (path.Length == 0 || Path.GetFileNameWithoutExtension(path).Length == 0) { // Return null to indicate this path will not be used, instead of stopping whole process with exception return(null); } var extension = Path.GetExtension(path); // Check supported extensions if (!_options.AudioFileExtensions.Contains(extension, StringComparison.OrdinalIgnoreCase)) { return(null); } var container = extension.TrimStart('.'); var parsingResult = new AudioBookFilePathParser(_options).Parse(path); return(new AudioBookFileInfo( path, container, chapterNumber: parsingResult.ChapterNumber, partNumber: parsingResult.PartNumber)); }