ttaenc.AlbumReader.GetAudioFiles C# (CSharp) Method

GetAudioFiles() public method

Recursively finds all valid audio files in a list of files or directories
public GetAudioFiles ( IEnumerable paths ) : IEnumerable
paths IEnumerable
return IEnumerable
        public IEnumerable<string> GetAudioFiles(IEnumerable<string> paths)
        {
            return paths.SelectMany(file =>
            {
                if (System.IO.Directory.Exists(file))
                {
                    return GetAudioFiles(new System.IO.DirectoryInfo(file).GetFileSystemInfos().Select(_ => _.FullName));
                }

                var info = new FileInfo(file);
                if (info.Exists && IsAudioFile(info))
                {
                    return new[] { file };
                }

                return Enumerable.Empty<string>();
            });
        }

Usage Example

Example #1
0
        /// <summary>
        /// Add all new tracks found in inputfiles
        /// </summary>
        /// <param name="inputFiles"></param>
        public void AddTracks(IEnumerable <string> inputFiles)
        {
            var albumReader = new AlbumReader();
            var existing    = Tracks.ToLookup(_ => _.Path);
            var toAdd       = albumReader.GetTracks(albumReader.GetAudioFiles(inputFiles))
                              .Where(t => !existing.Contains(t.Path));

            foreach (var track in toAdd)
            {
                track.Oid = this.GetNextOid();
            }

            Tracks = Tracks.Concat(toAdd)
                     .OrderBy(_ => _.Album)
                     .ThenBy(_ => _.TrackNumber)
                     .ToArray();
        }
All Usage Examples Of ttaenc.AlbumReader::GetAudioFiles