Esempio n. 1
0
        internal Result <List <MusicFileTag> > LoadMusicFilesFromRoot(string root)
        {
            var musicFileTags = new List <MusicFileTag>();
            var foldersList   = new List <string>();

            foldersList.Add(root);
            // add subfolders
            foldersList.AddRange(this.GetSubfolders(root));

            Regex reg = new Regex(@"^((?!\._).)*$");

            foreach (var folder in foldersList)
            {
                var folderContent = Directory.GetFiles(folder, "*.mp3")
                                    .Where(path => reg.IsMatch(path))
                                    .ToList();

                foreach (var file in folderContent)
                {
                    try
                    {
                        var tagInfo = File.Create(file);
                        musicFileTags.Add(MusicFileTag.ConvertTagToMusicFileTag(tagInfo.Tag, tagInfo.Name));
                    }
                    catch (CorruptFileException e)
                    {
                        return(HandleError(file, e));
                    }
                }
            }

            return(new Result <List <MusicFileTag> >(musicFileTags, Status.Success));
        }
Esempio n. 2
0
        internal Result <List <MusicFileTag> > LoadMusicFilesFromList(List <string> folderContent)
        {
            var musicFileTags = new List <MusicFileTag>();

            foreach (var file in folderContent)
            {
                try
                {
                    // make sure only *.mp3 files are processed
                    FileInfo info = new FileInfo(file);
                    if (info.Extension != ".mp3")
                    {
                        continue;
                    }

                    var tagInfo = File.Create(file);
                    musicFileTags.Add(MusicFileTag.ConvertTagToMusicFileTag(tagInfo.Tag, tagInfo.Name));
                }
                catch (CorruptFileException e)
                {
                    return(HandleError(file, e));
                }
            }

            return(new Result <List <MusicFileTag> >(musicFileTags, Status.Success));
        }
        public static MusicFileTag AddFile(string path)
        {
            if (System.IO.File.Exists(path))
            {
                var tagInfo = File.Create(path);

                TagLib.Id3v1.Tag id3v1Tag = tagInfo.GetTag(TagTypes.Id3v1) as TagLib.Id3v1.Tag;
                TagLib.Id3v2.Tag id3v2Tag = tagInfo.GetTag(TagTypes.Id3v2) as TagLib.Id3v2.Tag;

                return(MusicFileTag.ConvertTagToMusicFileTag(id3v1Tag, id3v2Tag, path));
            }
            else
            {
                MessageBox.Show("Couldn't find:\n" + path);
                return(null);
            }
        }