コード例 #1
0
 /// <summary>
 /// 按文件格式进行分类
 /// </summary>
 public void ByFormat()
 {
     for (int i = 0; i < infobase.Count; i++)
     {
         MusicInfo info = infobase[i];
         infoFlags[i]           = new InfoFlag();
         infoFlags[i].Flag      = info.Format;
         infoFlags[i].MusicInfo = info;
     }
     StartSort();
     MoveToTab(Setting.Default.LeastFormat);
 }
コード例 #2
0
 /// <summary>
 /// 按文件夹名进行分类
 /// </summary>
 public void ByFolderName()
 {
     for (int i = 0; i < infobase.Count; i++)
     {
         MusicInfo info    = infobase[i];
         string[]  subpath = info.Path.Split(new char[] { '\\' });
         infoFlags[i]           = new InfoFlag();
         infoFlags[i].Flag      = subpath[subpath.Length - 2];
         infoFlags[i].MusicInfo = info;
     }
     StartSort();
     MoveToTab(Setting.Default.LeastFolder);
 }
コード例 #3
0
 /// <summary>
 /// 按导入时间进行分类
 /// </summary>
 public void ByImportTime()
 {
     for (int i = 0; i < infobase.Count; i++)
     {
         MusicInfo info     = infobase[i];
         string[]  datetime = info.Buildtime.Split(new char[] { ' ' });
         string[]  date     = datetime[0].Split(new char[] { '/' });
         infoFlags[i]           = new InfoFlag();
         infoFlags[i].Flag      = date[1].Substring(2) + "年" + date[2] + "月" + date[0] + "日";
         infoFlags[i].MusicInfo = info;
     }
     StartSort();
     MoveToTab(Setting.Default.LeastBuildTime);
 }
コード例 #4
0
 /// <summary>
 /// 按艺术家名称进行分类
 /// </summary>
 public void ByArtist()
 {
     for (int i = 0; i < infobase.Count; i++)
     {
         MusicInfo info = infobase[i];
         infoFlags[i] = new InfoFlag();
         if (info.Artist == "" || info.Artist == null)
         {
             continue;
         }
         infoFlags[i].Flag      = info.Artist;
         infoFlags[i].MusicInfo = info;
     }
     StartSort();
     MoveToTab(Setting.Default.LeastArtist);
 }
コード例 #5
0
 /// <summary>
 /// 按作品年代进行分类
 /// </summary>
 public void ByAge()
 {
     for (int i = 0; i < infobase.Count; i++)
     {
         MusicInfo info = infobase[i];
         infoFlags[i] = new InfoFlag();
         if (info.Year == "" || info.Year == "0" || info.Year == null)
         {
             continue;
         }
         string century = info.Year.Substring(0, 2);
         string age     = info.Year.Substring(2, 1);
         try
         {
             if (Convert.ToInt32(century) < 20)
             {
                 infoFlags[i].Flag = age + "0年代";
                 if (Convert.ToInt32(century) < 19)
                 {
                     infoFlags[i].Flag = century + "世纪";
                 }
             }
             else
             {
                 if (Convert.ToInt32(age) == 0)
                 {
                     infoFlags[i].Flag = "2000年代";
                 }
                 else
                 {
                     infoFlags[i].Flag = "近年";
                 }
             }
         }
         catch (FormatException e) { }
         infoFlags[i].MusicInfo = info;
     }
     StartSort();
     MoveToTab(Setting.Default.LeastAge);
 }
コード例 #6
0
        /// <summary>
        /// 按标题语言进行分类
        /// </summary>
        public void ByTitle(bool fristInit)
        {
            if (fristInit)
            {
                try
                {
                    DetectorFactory.loadProfile(@"profiles\");
                    Detector test = DetectorFactory.create();
                    test.append("test");
                }
                catch (BadImageFormatException)
                {
                    MessageBox.Show(
                        "检测到您未安装相关依赖包,如果需要请前往以下地址下载\n32位:http://www.microsoft.com/en-us/download/details.aspx?id=18084 \n64位:http://www.microsoft.com/en-us/download/details.aspx?id=15468");
                    return;
                }
            }

            for (int i = 0; i < infobase.Count; i++)
            {
                MusicInfo info = infobase[i];
                infoFlags[i] = new InfoFlag();
                Detector detector = DetectorFactory.create();
                string   tag      = info.Title;
                if (Setting.Default.isScanLyric)
                {
                    if (File.Exists(Path.ChangeExtension(info.Path, "lrc")))
                    {
                        try
                        {
                            StreamReader reader1 =
                                new StreamReader(
                                    new FileStream(Path.ChangeExtension(info.Path, "lrc"), FileMode.Open,
                                                   FileAccess.Read), EncodingType.GetType(Path.ChangeExtension(info.Path, "lrc")));
                            tag += Format.LyricDelTime(reader1.ReadToEnd());
                        }
                        catch (IOException e)
                        {
                            MessageBox.Show("无法读取歌词文件:" + Path.ChangeExtension(info.Path, "lrc") + "。" + e.Message);
                        }
                    }
                }

                try
                {
                    detector.append(tag);
                    switch (detector.detect())
                    {
                    case "th": infoFlags[i].Flag = "泰语"; break;

                    case "fi": infoFlags[i].Flag = "芬兰语"; break;

                    case "fr": infoFlags[i].Flag = "法语"; break;

                    case "it": infoFlags[i].Flag = "意大利语"; break;

                    case "ru": infoFlags[i].Flag = "俄语"; break;

                    case "es": infoFlags[i].Flag = "西班牙语"; break;

                    case "ja": infoFlags[i].Flag = "日语"; break;

                    case "en": infoFlags[i].Flag = "英语"; break;

                    case "ko": infoFlags[i].Flag = "韩语"; break;

                    case "zh-cn": infoFlags[i].Flag = "中文(简)"; break;

                    case "zh-tw": infoFlags[i].Flag = "中文(繁)"; break;
                    }
                }
                catch (BadImageFormatException)
                {
                    MessageBox.Show("检测到您未安装相关依赖包,如果需要请前往以下地址下载\n32位:http://www.microsoft.com/en-us/download/details.aspx?id=18084 \n64位:http://www.microsoft.com/en-us/download/details.aspx?id=15468");
                    return;
                }
                catch (LangDetectException)
                {
                    infoFlags[i].Flag = "检测失败的项目";
                }
                infoFlags[i].MusicInfo = info;
            }
            StartSort();
            MoveToTab(Setting.Default.LeastCountry);
        }