public static string CreateProject(string dir, ArchiveFile template) { System.IO.Directory.CreateDirectory(dir); template.Extract(dir); return(System.IO.Path.Combine(dir, "Game.nkproj")); }
public CreateProjectWizard() { InitializeComponent(); string[] filelist = StorageManager.GetVirtualDirectoryFiles("Templates", "*.nkar", System.IO.SearchOption.AllDirectories); this.templateList.LargeImageList = new ImageList(); this.templateList.LargeImageList.ColorDepth = ColorDepth.Depth32Bit; this.templateList.LargeImageList.ImageSize = new Size(48, 48); this.templateList.SmallImageList = new ImageList(); this.templateList.SmallImageList.ColorDepth = ColorDepth.Depth32Bit; this.templateList.SmallImageList.ImageSize = new Size(16, 16); this.templateList.Columns.Add("名称"); this.templateList.Columns.Add("版本"); this.templateList.Columns.Add("语言"); this.templateList.Columns.Add("备注"); this.templateList.View = View.Details; this.templateList.MultiSelect = false; this.templateList.FullRowSelect = true; this.templateList.HideSelection = false; this.templateList.Sorting = SortOrder.Ascending; foreach (string filename in filelist) { try { ArchiveFile file = new ArchiveFile(filename); XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(file.Manifest); XmlNode root = xmldoc["NekoKunProjectTemplate"]; if (new Version(root.Attributes["Version"].Value) > new Version(((System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(System.Reflection.AssemblyFileVersionAttribute), false)[0] as System.Reflection.AssemblyFileVersionAttribute).Version))) { throw new ArgumentException("The project template file was created in a newer version of NekoKun which is not supported by this version of NekoKun."); } ListViewItem lvi = new ListViewItem(); lvi.Tag = file; lvi.Text = root["Title"].InnerText; lvi.SubItems.Add(root["Version"] != null ? root["Version"].InnerText : ""); lvi.SubItems.Add(root["Language"] != null ? root["Language"].InnerText : ""); lvi.SubItems.Add(root["Description"] != null ? root["Description"].InnerText : ""); lvi.ToolTipText = root["Description"] != null ? root["Description"].InnerText : ""; if (root["Icon"] != null) { Image image = NekoKun.Core.DrawingHelper.DecodeBase64Image(root["Icon"].InnerText); this.templateList.LargeImageList.Images.Add(filename, image); this.templateList.SmallImageList.Images.Add(filename, image); lvi.ImageKey = filename; } this.templateList.Items.Add(lvi); } catch { } } if (this.templateList.Items.Count >= 1) { this.templateList.Items[0].Selected = true; } this.templateList.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); FillFields(); this.fieldName.TextChanged += new EventHandler(fieldName_TextChanged); this.browseFolderButton.Click += new EventHandler(browseFolderButton_Click); UpdateAccept(); this.templateList.ItemSelectionChanged += delegate { UpdateAccept(); }; this.fieldLocation.TextChanged += delegate { UpdateAccept(); }; this.fieldName.TextChanged += delegate { UpdateAccept(); }; this.accpetButton.Click += new EventHandler(accpetButton_Click); }