示例#1
0
        private static void DecompressFile(string inputFileName, string outputFileName)
        {
            var fileData             = File.ReadAllBytes(inputFileName);
            var decompressedFileData = CgssLz4.Decompress(fileData);

            using (var decompressedFileStream = File.Open(outputFileName, FileMode.Create, FileAccess.Write)) {
                decompressedFileStream.WriteBytes(decompressedFileData);
            }
        }
        private void CmdBuildScoreDatabase_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            var    selectedRecord   = (LiveMusicRecord)((ComboBoxItem)CboSongList.SelectedItem).Tag;
            var    standardFileName = $"musicscores_m{selectedRecord.LiveID:000}.bdb";
            string lz4FileName      = null;

            if (CreateLz4CompressedBdbFile)
            {
                lz4FileName = standardFileName + ".lz4";
            }
            var saveDialog = new SaveFileDialog {
                OverwritePrompt = true,
                ValidateNames   = true,
                Filter          = Application.Current.FindResource <string>(App.ResourceKeys.BdbFileFilter),
                FileName        = standardFileName
            };
            var saveResult = saveDialog.ShowDialog();

            if (!(saveResult ?? false))
            {
                return;
            }
            if (lz4FileName != null)
            {
                lz4FileName = Path.Combine((new FileInfo(saveDialog.FileName)).DirectoryName ?? string.Empty, lz4FileName);
            }
            try {
                var difficultyMappings = new Dictionary <Difficulty, Difficulty> {
                    { Difficulty.Debut, MappingDebut },
                    { Difficulty.Regular, MappingRegular },
                    { Difficulty.Pro, MappingPro },
                    { Difficulty.Master, MappingMaster },
                    { Difficulty.MasterPlus, MappingMasterPlus }
                };
                BuildBdb(Project, saveDialog.FileName, selectedRecord, difficultyMappings);
                if (lz4FileName != null)
                {
                    var fileData           = File.ReadAllBytes(saveDialog.FileName);
                    var compressedFileData = CgssLz4.Compress(fileData);
                    using (var compressedFileStream = File.Open(lz4FileName, FileMode.Create, FileAccess.Write)) {
                        compressedFileStream.WriteBytes(compressedFileData);
                    }
                }
                var format = lz4FileName == null?
                             Application.Current.FindResource <string>(App.ResourceKeys.BdbBuildingCompletePromptTemplate1) :
                                 Application.Current.FindResource <string>(App.ResourceKeys.BdbBuildingCompletePromptTemplate2);

                var message = string.IsNullOrEmpty(lz4FileName) ? string.Format(format, saveDialog.FileName) : string.Format(format, saveDialog.FileName, lz4FileName);
                MessageBox.Show(message, App.Title, MessageBoxButton.OK, MessageBoxImage.Information);
            } catch (Exception ex) {
                MessageBox.Show(ex.Message, App.Title, MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }