private void LoadInformation() { this.Title = "Export Directory | " + ExportTarget.GetReferencedItemName(); ExportDirectoryFileChooserButton.SetFilename(Config.GetDefaultExportDirectory()); // Load all references foreach (ItemReference childReference in ExportTarget.ChildReferences) { // TODO: Support recursive folder export if (childReference.IsFile) { ItemExportListStore.AppendValues(true, childReference.GetReferencedItemName()); if (!this.ReferenceMapping.ContainsKey(childReference.GetReferencedItemName())) { this.ReferenceMapping.Add(childReference.GetReferencedItemName(), childReference); } } } }
/// <summary> /// Exports the mipmaps in the image. /// </summary> public void RunExport() { ItemExportListStore.Foreach(delegate(ITreeModel model, TreePath path, TreeIter iter) { bool bShouldExport = (bool)ItemExportListStore.GetValue(iter, 0); if (bShouldExport) { ItemReference referenceToExport = this.ReferenceMapping[(string)ItemExportListStore.GetValue(iter, 1)]; string ExportPath = ""; if (Config.GetShouldKeepFileDirectoryStructure()) { string parentDirectoryOfFile = ExtensionMethods.ConvertPathSeparatorsToCurrentNativeSeparator(ExportTarget.ItemPath); ExportPath = $"{ExportDirectoryFileChooserButton.Filename}{System.IO.Path.DirectorySeparatorChar}{parentDirectoryOfFile}{System.IO.Path.DirectorySeparatorChar}{referenceToExport.GetReferencedItemName()}"; } else { ExportPath = $"{ExportDirectoryFileChooserButton.Filename}{System.IO.Path.DirectorySeparatorChar}{referenceToExport.GetReferencedItemName()}"; } System.IO.Directory.CreateDirectory(System.IO.Directory.GetParent(ExportPath).FullName); byte[] fileData = referenceToExport.Extract(); if (fileData != null) { File.WriteAllBytes(ExportPath, fileData); } } return(false); }); }