private async void buttonRawRead_Click(object sender, EventArgs e) { if (openFileDialogGuichu.ShowDialog() == DialogResult.OK) { MemoryStream tempMs = new MemoryStream(); using (FileStream fs = new FileStream(openFileDialogGuichu.FileName, FileMode.Open)) { using (GZipStream Compress = new GZipStream(fs, CompressionMode.Decompress)) { Compress.CopyTo(tempMs); } } byte[] bytes = tempMs.ToArray(); string str = Encoding.GetEncoding("UTF-8").GetString(bytes); BiliShell bs = JsonConvert.DeserializeObject <BiliShell>(str); if (bs.ver != 1) { MessageBox.Show("此文件是使用新版BR生成的,无法打开!"); return; } List <BiliInterfaceInfo> bi = JsonConvert.DeserializeObject <List <BiliInterfaceInfo> >(bs.infos.ToString()); textBoxAV.Text = ""; //TODO: 判断是否为空文件 foreach (BiliInterfaceInfo i in bi) { textBoxAV.Text += i.AVNUM + "\r\n"; } dataGridViewRAW.DataSource = bi; Log.Info("文件加载完成,正在生成csv"); textBoxOut.Text = await BiliInterface.GetCsvInfosAsync(bi); Log.Info("生成csv完成"); } }
public void OpenFile(string name) { if (!name.EndsWith(".sdygx")) { MessageBox.Show("不是圣地亚哥数据库X文件啊!拖错啦!"); return; } MemoryStream tempMs = new MemoryStream(); using (FileStream fs = new FileStream(name, FileMode.Open)) { using (GZipStream Compress = new GZipStream(fs, CompressionMode.Decompress)) { Compress.CopyTo(tempMs); } } byte[] bytes = tempMs.ToArray(); string str = Encoding.GetEncoding("UTF-8").GetString(bytes); BiliShell bs = JsonConvert.DeserializeObject <BiliShell>(str); if (bs.ver != 1) { MessageBox.Show("此文件是使用新版BR生成的,无法打开!"); return; } List <BiliInterfaceInfo> bi = JsonConvert.DeserializeObject <List <BiliInterfaceInfo> >(bs.infos.ToString()); SetNewData(bi); RefreshGenTime(bs.genTime); SharedData.SortedAVs = from a in bi select a.avnum; }
private void buttonRawSave_Click(object sender, EventArgs e) { string fileName = DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".sdygx"; saveFileDialogGuichu.FileName = fileName; if (saveFileDialogGuichu.ShowDialog() == DialogResult.OK) { fileName = saveFileDialogGuichu.FileName; try { BiliShell bs = new BiliShell { ver = 1, infos = (List <BiliInterfaceInfo>)dataGridViewRAW.DataSource }; string str = JsonConvert.SerializeObject(bs); byte[] bytes = Encoding.GetEncoding("UTF-8").GetBytes(str); using (FileStream fs = new FileStream(fileName, FileMode.Create)) { using (GZipStream Compress = new GZipStream(fs, CompressionMode.Compress)) { Compress.Write(bytes, 0, bytes.Length); } } Log.Info("成功导出文件 -> " + fileName); } catch { Log.Error("文件保存错误!检查权限"); } } }
private void buttonSave_Click(object sender, RoutedEventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "圣地亚哥数据库X|*.sdygx"; string fileName = DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".sdygx"; dlg.FileName = fileName; if (dlg.ShowDialog() == true) { fileName = dlg.FileName; try { BiliShell bs = new BiliShell { ver = 1, infos = GetData(), genTime = genTime }; string str = JsonConvert.SerializeObject(bs); byte[] bytes = Encoding.GetEncoding("UTF-8").GetBytes(str); using (FileStream fs = new FileStream(fileName, FileMode.Create)) { using (GZipStream Compress = new GZipStream(fs, CompressionMode.Compress)) { Compress.Write(bytes, 0, bytes.Length); } } log.Info("成功导出文件 -> " + fileName); } catch (Exception exc) { log.Error("文件保存错误!" + exc.Message); } } }