111,128
社区成员
发帖
与我相关
我的任务
分享

public void GetTreeViewNode(ref List<TreeViewNode> list,string folder,ref int id)
{
int pId = id;
foreach (var dir in Directory.GetDirectories(folder))
{
TreeViewNode node = TreeViewNode();
node.id = id + 1;
node.pId = pId;
node.name = dir.Remove(0,dir.LastIndeOf('\\"));
node.url = dir;
list.Add(node);
id += 1;
GetTreeViewNode(ref list,dir,ref id);
}
foreach(var file in Directory.GetFiles(sourceFolder))
{
TreeViewNode node = TreeViewNode();
node.id = id + 1;
node.pId = pId;
node.name = dir.Remove(0,file.LastIndeOf('\\"));
node.url = file;
list.Add(node);
id += 1;
}
}
public class TreeViewNode
{
public int id {get;set;}
public int pId {get;set;}
public string name {get;set;}
public bool open {get;set;}
public string iconOpen {get;set;}
public string icon {get;set;}
public string url {get;set;}
}
public string GetJsonTreeView(string sourceFolder)
{
List<TreeViewNode> list = new List<TreeViewNode>();
int id = 0;
GetTreeViewNode(ref list,sourceFolder,ref id);
return new JavaScriptSerializer().Serialize(list);
}
public void GetTreeViewNode(ref List<TreeViewNode> list,string folder,ref int id)
{
foreach (var dir in Directory.GetDirectories(folder)) {
TreeViewNode node = TreeViewNode();
node.id = id + 1;
node.pId = id;
node.name = dir.Remove(0,dir.LastIndeOf('\\"));
node.url = dir;
list.Add(node);
id += 1;
GetTreeViewNode(ref list,dir,ref id);
}
foreach(var file in Directory.GetFiles(sourceFolder))
{
TreeViewNode node = TreeViewNode();
node.id = id + 1;
node.pId = id;
node.name = dir.Remove(0,file.LastIndeOf('\\"));
node.url = file;
list.Add(node);
id += 1;
}
}
textBox1.Text = GetJsonTree("F:\\backup\\WindowsFormsApplication4\\obj");
private string GetJsonTree(string strPath) {
string strRet = "{{\"name\":\"{0}\",\"File\":[{2}],\"sub\":[{1}]}}";
List<string> lst = new List<string>();
string strFolderName = strPath.Substring(strPath.LastIndexOf('\\') + 1);
string strSubFile = string.Empty;
foreach (var v in Directory.GetFiles(strPath)) {
lst.Add("\"" + Path.GetFileName(v) + "\"");
}
strSubFile = string.Join(",", lst.ToArray());
lst.Clear();
foreach (var v in Directory.GetDirectories(strPath)) {
lst.Add(GetJsonTree(v));
}
return string.Format(strRet, strFolderName, string.Join(",", lst.ToArray()), strSubFile);
}
{
"name": "obj",
"File": [],
"sub": [
{
"name": "Debug",
"File": [
"DesignTimeResolveAssemblyReferences.cache",
"DesignTimeResolveAssemblyReferencesInput.cache",
"WindowsFormsApplication4.csproj.FileListAbsolute.txt",
"WindowsFormsApplication4.csproj.GenerateResource.Cache",
"WindowsFormsApplication4.csproj.ResolveComReference.cache",
"WindowsFormsApplication4.csprojResolveAssemblyReference.cache",
"WindowsFormsApplication4.exe",
"WindowsFormsApplication4.Form1.resources",
"WindowsFormsApplication4.Form2.resources",
"WindowsFormsApplication4.pdb",
"WindowsFormsApplication4.Properties.Resources.resources"
],
"sub": [
{
"name": "TempPE",
"File": [],
"sub": []
}
]
},
{
"name": "Release",
"File": [
"DesignTimeResolveAssemblyReferences.cache",
"DesignTimeResolveAssemblyReferencesInput.cache",
"TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs",
"TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs",
"TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs",
"WindowsFormsApplication4.csproj.FileListAbsolute.txt",
"WindowsFormsApplication4.csproj.GenerateResource.Cache",
"WindowsFormsApplication4.csproj.ResolveComReference.cache",
"WindowsFormsApplication4.csprojResolveAssemblyReference.cache",
"WindowsFormsApplication4.exe",
"WindowsFormsApplication4.Form1.resources",
"WindowsFormsApplication4.Form2.resources",
"WindowsFormsApplication4.pdb",
"WindowsFormsApplication4.Properties.Resources.resources"
],
"sub": [
{
"name": "TempPE",
"File": [
"Properties.Resources.Designer.cs.dll"
],
"sub": []
}
]
}
]
}
临时帮你写了一个自己参考
拼接的时候 自己转义特殊字符