private void GetDirectories(ZDirectoryInfo[] subDirs, 
TreeNode nodeToAddTo)
     {
         TreeNode aNode;
         ZDirectoryInfo[] subSubDirs;
         foreach (ZDirectoryInfo subDir in subDirs)
         {
         	//subDir.UpdateInfo();
         	aNode = new TreeNode(subDir.Name.Replace("/",""), 0, 0);
             aNode.Tag = subDir;
			 aNode.ImageKey = "folder";
             subSubDirs = subDir.GetDirectories();
             if (subSubDirs.Length != 0)
             {
                 GetDirectories(subSubDirs, aNode);
             }
             nodeToAddTo.Nodes.Add(aNode);
         }
     }
		public static ZDirectoryInfo GetDirectoryInfo(ref ZipRWArchiveCache zrw, string path,string parent="")
		{
			var info = new ZDirectoryInfo(path, ref zrw,parent);
			return info;
		}
		public static ZDirectoryInfo GetDirectoryInfo(string archiveFile, string path)
		{
			ZipRWArchiveCache zrw = new ZipRWArchiveCache(archiveFile);
			var info = new ZDirectoryInfo(path, ref zrw);
			return info;
		}