一、递归加载目录树
class="code_img_closed" src="/Upload/Images/2013101123/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('50e1be65-3ba9-46db-92d0-8ca9ec2382e7',event)" src="/Upload/Images/2013101123/2B1B950FA3DF188F.gif" alt="" />1 string path=@"D:\A"; 2 3 public Form1() 4 5 { 6 7 LoadTree(path,null); 8 9 } 10 11 public void LoadTree(string path,TreeNode node) 12 13 { 14 15 //将指定路径下的所有子目录保存在数组中 16 17 string[] dirs=Directory.GetDirectories(path); 18 19 foreach(string dir in dirs) 20 21 { 22 23 TreeNode node1=new TreeNode(Path.GetFileName(dir)); 24 25 if(node==null) 26 { 27 28 tvData.Nodes.Add(node1);//加到根目录 29 30 } 31 32 else 33 34 { 35 36 node.Nodes.Add(node1); 37 38 } 39 40 //如果dir下还有子目录 41 42 if(Directory.GetDirectories(dir).Length>0) 43 44 { 45 46 LoadTree(dir,node1); 47 48 } 49 50 } 51 52 }View Code
二、文件流读写操作
一、序列化/反序列化
1 class Person 2 3 { 4 5 public int Age{get;set;} 6 7 public string Name{get;set;} 8 9 } 10 11 class Program 12 13 { 14 15 Person p=new Person(); 16 17 if(File.Exists("1.txt")) 18 19 { 20 21 string[] lins=File.ReadAllLines("1.txt",Encoding.Default); 22 23 p.Age=int.Parse(lines[0]); 24 25 p.Name=lines[1]; 26 27 } 28 29 else 30 31 { 32 33 p.Age=17; 34 35 p.Name="jack"; 36 37 File.WriteAllLines("1.txt",new string[]{p.Age.ToString(),p.Name});//写入当前程序集的bin文件夹中 38 39 } 40 41 Console.WriteLine(p.Age+":"+p.Name); 42 43 Consoles.ReadKey(); 44 45 }View Code
如果此时Person有100个字段怎么办?此时就要用序列化(将对象的状态持久化到某一个设备中)
1 [Serializable]//表示Person可被序列化 2 3 class Person 4 5 { 6 7 public int Age{get;set;} 8 9 public string Name{get;set;} 10 11 } 12 13 class Program 14 15 { 16 17 static void Main(string[] agrs) 18 19 { 20 21 Person p=new Person(){Age=12,Name="rose"}; 22 23 //序列化 24 25 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf=new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); 26 27 using(FileStream fs=new FileStream("se.bin",FilreMode.Create)) 28 29 { 30 31 bf.Serialize(fs,p);//把p的状态保存到了se.bin中,以二进制的方式序列化,而不是文本文档 32 33 } 34 35 //反序列化 36 37 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf=new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); 38 39 using(FireStream fs=new FileStream("se.bin",File.Open)) 40 41 { 42 43 object obj=bf.Deserialize(fs);//反序列化 44 45 Person p=obj as Person; 46 47 Console.WriteLine(p.Name+":"+p.Age); 48 49 } 50 51 } 52 53 }View Code