//int initialScanDepth = 2;
		private void PopulateTreeView(string path)
     {
			treeView1.Nodes.Clear();
         TreeNode rootNode;
         zrwCache = new ZipRWArchiveCache(expFile);
		ZDirectoryInfo info = ZPathParser.GetDirectoryInfo(ref zrwCache, path);
		rootNode = new TreeNode(info.Name);
		rootNode.Tag = info;
		GetDirectories(info.GetDirectories(), rootNode);
		treeView1.Nodes.Add(rootNode);
     }
		public static ZDirectoryInfo GetDirectoryInfo(string archiveFile, string path)
		{
			ZipRWArchiveCache zrw = new ZipRWArchiveCache(archiveFile);
			var info = new ZDirectoryInfo(path, ref zrw);
			return info;
		}
		public static ZDirectoryInfo GetDirectoryInfo(ref ZipRWArchiveCache zrw, string path,string parent="")
		{
			var info = new ZDirectoryInfo(path, ref zrw,parent);
			return info;
		}
		public ZDirectoryInfo(string dirpath, ref ZipRWArchiveCache zrw, string parent="")
		{
			this.parent = parent;
			this.dirpath = dirpath;
			this.zrw = zrw;
			UpdateInfo();
		}