/// <summary> /// 编辑Lakka列表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnLakkaEdit_Click(object sender, EventArgs e) { Form frm = new FrmLakka(); frm.ShowDialog(this); frm.Dispose(); }
/// <summary> /// 根据ROM目录生成Lakka列表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCreateLakka_Click(object sender, EventArgs e) { using (FolderBrowserDialog dialog = new FolderBrowserDialog()) { dialog.Description = "请选择 游戏ROM所在的文件夹"; if (dialog.ShowDialog() == DialogResult.OK) { FrmLakka lakka = new FrmLakka(); ICollection <FileInfo> files = lakka.readRomToMem(dialog.SelectedPath).Values; lakka.Dispose(); Dictionary <string, GameItem> games = new Dictionary <string, GameItem>(); foreach (FileInfo fi in files) { GameItem item = new GameItem(); item.V1RomFullFileName = fi.FullName; item.V2RomCnName = fi.FullName.Remove(fi.FullName.LastIndexOf(fi.Extension)); //item.getRomShortFileNameWithOutExtension(); item.V3coreBinaryPath = "DETECT_CORE"; item.V4EmuType = "DETECT_TYPE"; item.V5Crc32 = "DETECT"; item.V6pListName = "PLAY_LIST_FILE_NAME"; item.removeUnSupportedFileChar(); games.Add(item.V1RomFullFileName, item); } using (SaveFileDialog fileDialog = new SaveFileDialog()) { fileDialog.Title = "保存Lakka游戏列表文件"; fileDialog.Filter = "所有文件(*.lpl)|*.lpl"; fileDialog.InitialDirectory = dialog.SelectedPath; if (fileDialog.ShowDialog() == DialogResult.OK) { //排序 List <GameItem> sortedList = new List <GameItem>(); sortedList.AddRange(games.Values); sortedList.Sort(); FileStream fs = File.Create(fileDialog.FileName); foreach (GameItem item in sortedList) { Utils.WriteStrToFile(fs, item.V1RomFullFileName); Utils.WriteStrToFile(fs, item.V2RomCnName); Utils.WriteStrToFile(fs, item.V3coreBinaryPath); Utils.WriteStrToFile(fs, item.V4EmuType); Utils.WriteStrToFile(fs, item.V5Crc32); Utils.WriteStrToFile(fs, item.V6pListName); } fs.Flush(); fs.Close(); MessageBox.Show("成功转换<" + games.Count.ToString() + ">个游戏"); } } } } }