퇴근5분전


SBS 전자 자막의뢰 Web사이트 구축하면서 
로그파일관리 페이지를 만들면서 작성했던 부분임.
간단한 재귀로 하위 디렉토리들을 추가 하게 됨. 

 /// <summary>
 /// 폴더 이하 파일&디렉토리 검색해서 트리뷰에 추가하는 재귀 함수
 /// </summary>
 /// <param name="sDirectoryName"></param>
 /// <returns></returns>
 private TreeNode GetTreeNodes(string sDirectoryName, string rootPath)
 {

  string[] fileNames = Directory.GetFiles(sDirectoryName);
  string[] directoryNames = Directory.GetDirectories(sDirectoryName);

  int fileCount = fileNames.Length;

  //TreeNode root = new TreeNode(sDirectoryName.Replace(rootPath, ""));
  TreeNode root = new TreeNode(string.Format("{0} : {1}", sDirectoryName.Replace(rootPath, ""), fileCount), sDirectoryName.Replace(rootPath, ""));

  foreach (string dir in directoryNames)
  {
   if( dir.Replace(sDirectoryName+"\\","") == ".svn") continue;
   TreeNode tnode = GetTreeNodes(dir, sDirectoryName+@"\");    // 재귀!
   tnode.SelectAction = TreeNodeSelectAction.Select;      // 포스트백 발생하지 않게 됨.
   root.ChildNodes.Add(tnode);
  }
  //foreach (string fileName in fileNames)
  //{
  //    TreeNode tnode2 = new TreeNode(fileName.Replace(sDirectoryName + "\\", ""));
  //    tnode2.SelectAction = TreeNodeSelectAction.None;
  //    root.ChildNodes.Add(tnode2);
  //}
  root.SelectAction = TreeNodeSelectAction.Select;
  return root;
 }