Files
2021-01-21 14:27:11 -06:00

115 lines
3.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace MKVTest
{
public partial class FrmProperties : Form
{
public FrmProperties()
{
InitializeComponent();
GeneratePropertiesFile(@"C:\Users\glmcc\Desktop\Death Note\Black Lagoon - 1x02 - Mangrove Heaven.mkv");
ReadPropertiesFile();
}
private void GeneratePropertiesFile(string filePath)
{
var command = "/C mkvinfo.exe \"" + filePath + "\" > properties.txt";
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
FileName = "cmd.exe",
Arguments = command
};
process.StartInfo = startInfo;
process.Start();
while (!process.HasExited)
{
}
}
private void ReadPropertiesFile()
{
var serializer = new SerializeMkvInfo();
var xml = serializer.SerializeFile("properties.txt");
var text = new StringBuilder();
foreach (var line in xml)
{
text.Append(line.Trim());
}
ReadXml(text.ToString());
}
private void ReadXml(string s)
{
var xReader = new XmlTextReader(new StringReader(s));
var r = new StringBuilder();
ClearForm();
var tags = new List<XmlTag>();
var subGroup = new GroupBox();
while (xReader.Read())
{
switch (xReader.NodeType)
{
case XmlNodeType.Element:
var t = new XmlTag
{
Name = xReader.Name
};
tags.Add(t);
break;
case XmlNodeType.Text:
tags[tags.Count - 1].Value = xReader.Value;
break;
case XmlNodeType.EndElement:
tags.Clear();
break;
}
}
//foreach (var tag in tags)
//{
// //Foreach tag create a new row in the table layout panel.
// mainLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30));
// var label = new Label
// {
// Text = tag.Name //Static property name.
// };
// var textBox = new TextBox
// {
// Text = tag.Value //Allows the user to
// };
// mainLayoutPanel.Controls.Add(label, 0, mainLayoutPanel.RowCount - 1);
// mainLayoutPanel.Controls.Add(textBox, 0, mainLayoutPanel.RowCount - 1);
//}
}
private void BuildForm(List<XmlTag> tags)
{
foreach (var tag in tags)
{
}
}
private void ClearForm()
{
}
}
}