mirror of
https://github.com/jaquadro/NBTExplorer.git
synced 2025-01-10 09:56:25 +00:00
66 lines
1.6 KiB
C#
66 lines
1.6 KiB
C#
|
using System.IO;
|
|||
|
|
|||
|
namespace NBTExplorer.Model
|
|||
|
{
|
|||
|
public class DirectoryDataNode : DataNode
|
|||
|
{
|
|||
|
private string _path;
|
|||
|
|
|||
|
public DirectoryDataNode (string path)
|
|||
|
{
|
|||
|
_path = path;
|
|||
|
}
|
|||
|
|
|||
|
protected override NodeCapabilities Capabilities
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return NodeCapabilities.Search;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override string NodeDisplay
|
|||
|
{
|
|||
|
get { return Path.GetFileName(_path); }
|
|||
|
}
|
|||
|
|
|||
|
public override bool HasUnexpandedChildren
|
|||
|
{
|
|||
|
get { return !IsExpanded; }
|
|||
|
}
|
|||
|
|
|||
|
protected override void ExpandCore ()
|
|||
|
{
|
|||
|
foreach (string dirpath in Directory.GetDirectories(_path)) {
|
|||
|
Nodes.Add(new DirectoryDataNode(dirpath));
|
|||
|
}
|
|||
|
|
|||
|
foreach (string filepath in Directory.GetFiles(_path)) {
|
|||
|
string ext = Path.GetExtension(filepath);
|
|||
|
DataNode node = null;
|
|||
|
|
|||
|
switch (ext) {
|
|||
|
case ".mcr":
|
|||
|
case ".mca":
|
|||
|
node = RegionFileDataNode.TryCreateFrom(filepath);
|
|||
|
break;
|
|||
|
|
|||
|
case ".dat":
|
|||
|
case ".nbt":
|
|||
|
case ".schematic":
|
|||
|
node = NbtFileDataNode.TryCreateFrom(filepath);
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
if (node != null)
|
|||
|
Nodes.Add(node);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void ReleaseCore ()
|
|||
|
{
|
|||
|
Nodes.Clear();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|