- [GUI] fix issue with export all objects (split)
This commit is contained in:
@@ -680,10 +680,11 @@ namespace AssetStudioGUI
|
|||||||
{
|
{
|
||||||
ThreadPool.QueueUserWorkItem(state =>
|
ThreadPool.QueueUserWorkItem(state =>
|
||||||
{
|
{
|
||||||
var count = nodes.Cast<TreeNode>().Sum(x => x.Nodes.Count);
|
var exportNodes = GetNodes(nodes);
|
||||||
|
var count = exportNodes.Cast<TreeNode>().Sum(x => x.Nodes.Count);
|
||||||
int k = 0;
|
int k = 0;
|
||||||
Progress.Reset();
|
Progress.Reset();
|
||||||
foreach (TreeNode node in nodes)
|
foreach (TreeNode node in exportNodes)
|
||||||
{
|
{
|
||||||
//遍历一级子节点
|
//遍历一级子节点
|
||||||
foreach (GameObjectTreeNode j in node.Nodes)
|
foreach (GameObjectTreeNode j in node.Nodes)
|
||||||
@@ -699,6 +700,10 @@ namespace AssetStudioGUI
|
|||||||
}
|
}
|
||||||
//处理非法文件名
|
//处理非法文件名
|
||||||
var filename = FixFileName(j.Text);
|
var filename = FixFileName(j.Text);
|
||||||
|
if (node.Parent != null)
|
||||||
|
{
|
||||||
|
filename = Path.Combine(FixFileName(node.Parent.Text), filename);
|
||||||
|
}
|
||||||
//每个文件存放在单独的文件夹
|
//每个文件存放在单独的文件夹
|
||||||
var targetPath = $"{savePath}{filename}{Path.DirectorySeparatorChar}";
|
var targetPath = $"{savePath}{filename}{Path.DirectorySeparatorChar}";
|
||||||
//重名文件处理
|
//重名文件处理
|
||||||
@@ -734,6 +739,25 @@ namespace AssetStudioGUI
|
|||||||
OpenFolderInExplorer(savePath);
|
OpenFolderInExplorer(savePath);
|
||||||
}
|
}
|
||||||
StatusStripUpdate("Finished");
|
StatusStripUpdate("Finished");
|
||||||
|
|
||||||
|
IEnumerable<TreeNode> GetNodes(TreeNodeCollection nodes)
|
||||||
|
{
|
||||||
|
foreach(TreeNode node in nodes)
|
||||||
|
{
|
||||||
|
var subNodes = node.Nodes.OfType<TreeNode>().ToArray();
|
||||||
|
if (subNodes.Length == 0)
|
||||||
|
{
|
||||||
|
yield return node;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (TreeNode subNode in subNodes)
|
||||||
|
{
|
||||||
|
yield return subNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user