private void SetStartNode() // 로그인이 성공했을때 TreeView노드에 경로로 보여줄 초기 노드를 받는다. { BinaryFormatter serializer = new BinaryFormatter(); TcpClient fileClient = fileConnect(); NetworkStream fileStream = fileClient.GetStream(); ReqStartNodePack reqNodePack = new ReqStartNodePack { Id = userID // 본인이 접속한 id명의 폴더가 자신의 공간이다. 이 폴더의 하위폴더를 노드형태로 받아올거다. }; serializer.Serialize(fileStream, reqNodePack); Pack resNodePack = (Pack)serializer.Deserialize(fileStream); if (resNodePack.PackType == CONSTANTS.TYPE_ERROR) { MessageBox.Show(CONSTANTS.Err_String[resNodePack.Flag], "알림"); return; } TreeNode node = ((ResStartNode)resNodePack).ROOT_NODE; tree_Directory.Nodes.Add(node); selectedNode = node; // 최상위 폴더를 선택한다/ selectedPath = node.FullPath; node.Expand(); fileStream.Close(); fileClient.Close(); lbl_SelectPath.Text = "업로드 경로 : " + selectedNode.Text; RefreshList(userID); // 파일목록도 새로고침. }
// ==== ResNode() (TYPE_REQ_LOGIN) ==== // private void ResNode(ReqStartNodePack reqPack) // 클라이언트에 초기노드 만들어서 보내는 응답 { TreeNode node = new TreeNode(reqPack.Id); // 보낼 임시노드 if (!(Directory.Exists(rootPath + reqPack.Id))) // 가입 후 첫 접속일경우 ID이름의 폴더가없으므로 만들어준다 { Directory.CreateDirectory(rootPath + reqPack.Id); } tempTree.Nodes.Add(node); // 노드에 노드를 추가하기위해서 TreeView에 추가를 해줘야하더라 MakeTreeNode(node); // 경로검색해서 노드들 붙이는 메소드 ResStartNode resPack = new ResStartNode { ROOT_NODE = node }; serializer.Serialize(clientStream, resPack); Console.WriteLine("<->시작 노드전송 : {0} ", ((IPEndPoint)client.Client.RemoteEndPoint).ToString()); }